OPTIMIZE TABLE для всех таблиц в базе данных

OPTIMIZE TABLE для всех таблиц в базе данных

Сначала вкратце, зачем нужна команда OPTIMIZE TABLE. Если прочитать описание, то увидим, что данная операция реорганизует физическое пространство занимаемое таблицей и индексами, что обеспечивает уменьшение занимаемого места и ускорение операций ввода/вывода. Конкретно производимые действия отличаются для разных движков таблиц (поддерживаются MyISAM, ARCHIVE и InniDB), подробнее об этом можно почитать в документации MySQL.

Возникает естественный вопрос: как автоматизировать данную операцию? Если для конкретной таблицы это легко сделать SQL-запросом OPTIMIZE TABLE table_name, то как это сделать сразу для всех таблиц в базе? Легко и непринуждённо, с помощью идущей в поставке сервера утилиты mysqlcheck.

Оптимизация всех таблиц в базе данных.

mysqlcheck --user=uuuuuu --password=pppppp --optimize database_name

Оптимизация всех баз данных сразу.

mysqlcheck --user=uuuuuu --password=pppppp --optimize --all-databases

Если хотим выполнять оптимизацию всех баз ежедневно в 4 часа ночи, открываем файл /etc/crontab и добавляем в него строчку.

0 4  * * *  root  mysqlcheck --user=uuuuu --password=pppppp --optimize --all-databases > nul

 

 

http://ramzes.ws/blog/optimize-table-dlja-vseh-tablic-v-baze-dannyh

Leave a Comment

Your email address will not be published. Required fields are marked *

Shares