OPTIMIZE TABLE

В MySQL есть одна полезная команда optimize table, которая как не сложно догадаться оптимизирует таблицу, а если конкретно, то дефрагментирует таблицу (по аналогии с дефрагментацией диска). Зачем это нужно?

Конкретный пример из жизни: 2 таблицы по 50 000 записей, в которых постоянно идут update, insert, delete. Ясное дело, что при таком подходе данные фрагментируются. Поэтому, когда мы делаем JOIN, то запрос выполняется 0.2 секунды — довольно много для базы данных. После optimize table запрос стал выполнятся 0.015 сек. Никаких дополнительных индексов, покупки железа — просто упорядочили данные на диске. Команду можно поставить в cron раз в сутки, например.

#1

Зачем делать оптимизацию раз в сутки, если во время работы OPTIMIZE TABLE таблица заблокирована?

Olunka, 26.08.2013 - 10:59
Оставить комментарий