TT#15652 stime indexes for accounting.*_data tables

- 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
Rene Krenn 9 years ago
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…
Cancel
Save