Скрипт оптимизации нескольких баз данных одновременно
10 декабря 2010, 22:35 , , Веб-разработка , Можно прочесть за 1 минуту
У каждого посещаемого сайта с объёмным контентом есть такая проблема: после удаления или изменения данных в таблице, она становится фрагментированной, дисковое пространство расходуется зря, а время выполнения запроса вырастает, из-за того, что каждая команда INSERT повторно использует позиции старых записей. Поэтому базу данных любого сайта полезно время от времени оптимизировать, дефрагментировать и вообще всячески о ней заботиться.
В то же время, заходить каждый раз в phpmyadmin или делать запрос к серверу не хочется, особенно если сайтов много, и они находятся на разных хостингах.
Этот маленький скриптик выполняет операцию OPTIMIZE TABLE для всех фрагментированных таблиц выбранных баз данных.
Требования: база должна быть в формате MySQL (если быть точным, то MyISAM — впрочем, если вы знаете, что это такое, вам этот скрипт уже не нужен; а если не знаете, то можете не волноваться по этому поводу), а PHP должен исполняться.
Команда OPTIMIZE TABLE работает следующим образом:- Если в таблице есть удалённые или разделённые строки, она восстанавливает таблицу.
- Если индексные страницы не отсортированы, сортирует их.
- Если статистические данные не обновлены (и восстановление нельзя осуществить путём сортировки индексов), обновляет их.