Сегодня расскажу о важном аспекте поддержания базы данных сайта в рабочем состоянии — оптимизация таблиц в базе данных. Как вам скорее всего известно, система управления базами данных MySQL позволяет создавать разные типы таблиц, но среди разработчиков сайтов 2 типа таблиц являются стандартами де-факто — это MyISAM и InnoDB. Об их оптимизации я и расскажу. Для MyISAM есть стандартное ключевое слово для оптимизации — OPTIMIZE. Команда для оптимизации выглядит как OPTIMIZE `название_таблицы`. Для InnoDB такой команды нет и для такого типа таблиц следует использовать конструкцию ALTER TABLE $table ENGINE=`название_таблицы` PhpMyAdmin позволяет обрабатывать все таблицы базы данных, но в случае больших таблиц вебсервер может не дождаться обработки и PhpMyAdmin зависнет. На такой случае мы можем составить bash-скрипты. Для MyISAM он будет такой: #!/bin/bash cmd=» mysql -uroot -p$1 «
$cmd -e «show databases;» | sed ‘s/\|//g’ | sed -e ‘1d’ | while read db
do
$cmd $db -e «show tables;» | se