Анализ и оптимизация таблиц mySQL в Event Scheduler’e | |
Author: utilmind |
Процедурка для анализа/оптимизации всех таблиц в одной или во всех базах данных в пределах mySQL-сервера: CREATE PROCEDURE `mysql_maintenance_all_tables`( IN db_name VARCHAR(64), IN do_optimize TINYINT(1), IN do_analyze TINYINT(1) ) NOT DETERMINISTIC Я редко использую эту процедуру при помощи прямого вызова, предпочитая оптимизировать всё автоматически, через определённые промежутки времени. Вешаем вызов процедуры оптимизации на планировщик событий: CREATE EVENT `scheduler_daily_optimize` ON SCHEDULE EVERY 1 DAY STARTS '2012-05-07 05:15:15' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN /* и анализ и оптимизация для всех таблиц базы "my_db_name"*/ CALL mysql_maintenance_all_tables('my_db_name', 1, 1); END; Таким образом процесс оптимизации будет запускаться ежедневно, в 5 утра 15 минут 15 секунд. Если кто-то захочет поюзать описанный функционал, но ещё никогда не использовал Scheduled Events, не забываем включить его в конфигурации mySQL. Прописываем следующую строку в my.cnf (my.ini в Windows): event_scheduler = ON и перезапускаем mysql /etc/init.d/mysql restart Кто поюзает вышеописанное — ставьте лайк :) |
Tweet |
|