mirror of https://github.com/sipwise/db-schema.git
- required to support acc-cleanup's "backup" and "archive"
modes. for "cleanup" mode, they are not needed considering
the original plan with cdr delete triggers.
- delete triggers for accounting.cdr slow down the cleanup,
so we take them out. separate cleanup jobs should be registered.
this way, the performance of 3.x cleanup must be axactly restored.
- same for events; also there was no index for the
events.timestamp column yet
Change-Id: Ia117e237533814b5175eb2b1fab8fdc153878f83
(cherry picked from commit a9543c87cc)
changes/95/13295/1
parent
04a3dcbdec
commit
f5ff0a371b
@ -0,0 +1,55 @@
|
||||
use accounting;
|
||||
|
||||
DROP INDEX cashbalancedata_stime ON cdr_cash_balance_data;
|
||||
DROP INDEX timebalancedata_stime ON cdr_time_balance_data;
|
||||
DROP INDEX cdrrelationdata_stime ON cdr_relation_data;
|
||||
DROP INDEX cdrtagdata_stime ON cdr_tag_data;
|
||||
|
||||
DROP INDEX event_ts ON events;
|
||||
DROP INDEX eventrelationdata_ts ON events_relation_data;
|
||||
DROP INDEX eventrelationdata_ts ON events_tag_data;
|
||||
|
||||
DELIMITER ;;
|
||||
CREATE TRIGGER cdr_cascade_update_trig AFTER UPDATE ON cdr
|
||||
FOR EACH ROW BEGIN
|
||||
|
||||
UPDATE cdr_relation_data SET cdr_id = NEW.id WHERE cdr_id = OLD.id;
|
||||
UPDATE cdr_cash_balance_data SET cdr_id = NEW.id WHERE cdr_id = OLD.id;
|
||||
UPDATE cdr_time_balance_data SET cdr_id = NEW.id WHERE cdr_id = OLD.id;
|
||||
UPDATE cdr_tag_data SET cdr_id = NEW.id WHERE cdr_id = OLD.id;
|
||||
|
||||
END;;
|
||||
DELIMITER ;
|
||||
|
||||
DELIMITER ;;
|
||||
CREATE TRIGGER cdr_cascade_delete_trig AFTER DELETE ON cdr
|
||||
FOR EACH ROW BEGIN
|
||||
|
||||
DELETE FROM cdr_relation_data WHERE cdr_id = OLD.id;
|
||||
DELETE FROM cdr_cash_balance_data WHERE cdr_id = OLD.id;
|
||||
DELETE FROM cdr_time_balance_data WHERE cdr_id = OLD.id;
|
||||
DELETE FROM cdr_tag_data WHERE cdr_id = OLD.id;
|
||||
|
||||
END;;
|
||||
DELIMITER ;
|
||||
|
||||
DELIMITER ;;
|
||||
CREATE TRIGGER events_cascade_update_trig AFTER UPDATE ON events
|
||||
FOR EACH ROW BEGIN
|
||||
|
||||
UPDATE events_relation_data SET event_id = NEW.id WHERE event_id = OLD.id;
|
||||
UPDATE events_tag_data SET event_id = NEW.id WHERE event_id = OLD.id;
|
||||
|
||||
END;;
|
||||
DELIMITER ;
|
||||
|
||||
DELIMITER ;;
|
||||
CREATE TRIGGER events_cascade_delete_trig AFTER DELETE ON events
|
||||
FOR EACH ROW BEGIN
|
||||
|
||||
DELETE FROM events_relation_data WHERE event_id = OLD.id;
|
||||
DELETE FROM events_tag_data WHERE event_id = OLD.id;
|
||||
|
||||
END;;
|
||||
DELIMITER ;
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
use accounting;
|
||||
|
||||
CREATE INDEX cashbalancedata_stime ON cdr_cash_balance_data (cdr_start_time);
|
||||
CREATE INDEX timebalancedata_stime ON cdr_time_balance_data (cdr_start_time);
|
||||
CREATE INDEX cdrrelationdata_stime ON cdr_relation_data (cdr_start_time);
|
||||
CREATE INDEX cdrtagdata_stime ON cdr_tag_data (cdr_start_time);
|
||||
|
||||
CREATE INDEX event_ts ON events (timestamp);
|
||||
CREATE INDEX eventrelationdata_ts ON events_relation_data (event_timestamp);
|
||||
CREATE INDEX eventrelationdata_ts ON events_tag_data (event_timestamp);
|
||||
|
||||
DROP TRIGGER IF EXISTS cdr_cascade_update_trig;
|
||||
DROP TRIGGER IF EXISTS cdr_cascade_delete_trig;
|
||||
|
||||
DROP TRIGGER IF EXISTS events_cascade_update_trig;
|
||||
DROP TRIGGER IF EXISTS events_cascade_delete_trig;
|
||||
|
||||
Loading…
Reference in new issue