Phistory to archive
Материал из MajorDoMo инфо
Версия от 12:22, 26 апреля 2020; Mixman (обсуждение | вклад) (Новая страница: «Из телеграмчата от пользователя XOR Для ускорения работы MajorDoMo, есть смысл перенести табл...»)
Из телеграмчата от пользователя XOR
Для ускорения работы MajorDoMo, есть смысл перенести таблицу phistory "боевой" (читай основной рабочей) базы в таблицу отдельно созданной базы, для истории или анализа сторонними методами.
Внимание!!!<wrap fgred>Красный лучше сначала не удаляйте из боя, убедитесь, что база создана, с нужной кодировкой и правами. создайте там таблицу, наполните данными, посмотрите, что всё в порядке. а потом можно и чистить бой<wrap fgred>Красный
Создаем "вьюху"
CREATE OR REPLACE VIEW vw_clobjpr AS select `v`.`ID` AS `value_id`,`v`.`PROPERTY_ID` AS `PROPERTY_ID`,`v`.`PROPERTY_NAME` AS `PROPERTY_NAME`,`v`.`UPDATED` AS `UPDATED`, `v`.`VALUE` AS `VALUE`,`p`.`TITLE` AS `property`, `o`.`TITLE` AS `object`,`c`.`TITLE` AS `class`,`cp`.`TITLE` AS `class_parent`,`cpp`.`TITLE` AS `class_pparent` from (((((`pvalues` `v` join `properties` `p` on((`v`.`PROPERTY_ID` = `p`.`ID`))) join `objects` `o` on((`v`.`OBJECT_ID` = `o`.`ID`))) left join `classes` `c` on((`o`.`CLASS_ID` = `c`.`ID`))) left join `classes` `cp` on((`c`.`PARENT_ID` = `cp`.`ID`))) left join `classes` `cpp` on((`cp`.`PARENT_ID` = `cpp`.`ID`)))
Создаем отдельную базу и таблицу
Создаем базу
затем таблицу
//создать таблицу history и напихать туда данные create table archive.history as SELECT p.`ADDED`,p.`VALUE`,t.property_name FROM `phistory` p join vw_clobjpr t on p.`VALUE_ID`=t.value_id WHERE p.ADDED < DATE_SUB( NOW( ) , INTERVAL 2 MONTH ) ; //удалить напиханные данные из пхистори delete FROM `phistory` WHERE `ADDED` < DATE_SUB( NOW( ) , INTERVAL 2 MONTH ) ;