Синтаксис команды OPTIMIZE TABLE
OPTIMIZE TABLE tbl_name[,tbl_name]...
Команда OPTIMIZE TABLE должна использоваться после удаления большей части таблицы или если в таблице было внесено много изменений в строки переменной длины (таблицы, в которых есть столбцы VARCHAR , BLOB или TEXT ). Удаленные записи поддерживаются при помощи связного списка, и последующие операции INSERT повторно используют позиции старых записей. Чтобы перераспределить неиспользуемое пространство и дефрагментировать файл данных, можно воспользоваться командой OPTIMIZE TABLE .
На данный момент команда OPTIMIZE TABLE работает только с таблицами MyISAM и BDB . Для таблиц BDB команда OPTIMIZE TABLE выполняет ANALYZE TABLE . См. раздел 2 Синтаксис команды ANALYZE TABLE .
Можно применить OPTIMIZE TABLE к таблицам других типов, запустив mysqld с параметром --skip-new или --safe-mode , но в этом случае OPTIMIZE TABLE лишь только выполняет ALTER TABLE .
Команда OPTIMIZE TABLE работает следующим образом:
Если в таблице есть удаленные или разделенные строки, восстанавливает таблицу.
Если индексные страницы не отсортированы - сортирует их.
Если статистические данные не обновлены (и восстановление нельзя осуществить путем сортировки индексов), обновляет их.
Команда OPTIMIZE TABLE для MyISAM представляет собой эквивалент выполнения myisamchk --quick --check-only-changed --sort-index --analyze над таблицей.
Обратите внимание: во время работы OPTIMIZE TABLE таблица заблокирована!
Синтаксис команды ANALYZE TABLE
ANALYZE TABLE tbl_name[,tbl_name...]
Анализирует и сохраняет распределение ключей для таблицы. Во время проведения анализа таблица заблокирована для чтения. Эта функция работает для таблиц MyISAM и BDB .
Данная команда является эквивалентом выполнения myisamchk -a для таблицы.
Сохраненное распределение ключей в MySQL используется для принятия решения о том, в каком порядке следует связывать таблицы, когда для связывания используются не константы, а другая база.
Эта команда выдает таблицу со следующими столбцами:
Столбец | Значение | Table | Имя таблицы | Op | Всегда "analyze" | Msg_type | Одно из значений status , error , info или warning . | Msg_text | Сообщение. |
Просмотреть сохраненное распределение ключей можно при помощи команды SHOW INDEX . См. раздел Получение информации по базам данных, таблицам, столбцам и индексам.
Если таблица не изменялась с момента предыдущего запуска команды ANALYZE TABLE , повторный анализ таблицы проводиться не будет.
1 2 3 4 5 6 7
8 8 8
|