Можно ускорить выполнение запросов, если хранить таблицы и индексы в упорядоченном виде. Инструкция OPTIMIZE TABLE улучшает таблицу тремя способами. Во-первых, она устраняет пустые промежутки, оставшиеся после удаления записей. Для таблиц MyISAM это означает возможность одновременного выполнения инструкций INSERT и SELECT. Во-вторых, она соединяет распределенные фрагменты таблиц с динамическими записями. И, наконец, она сортирует индексы.
Инструкция ALTER TABLE позволяет отсортировать записи таблицы. Это тоже способствует ускорению некоторых запросов, хотя и не устраняет потребность в индексах. Если таблица меняется редко, а дисковое пространство ограничено, имеет смысл сжать таблицу с помощью утилиты myismpack. После этого таблица будет доступна только для чтения. Ее индексы необходимо перестроить, вызвав утилиту myismchk. Данная методика позволяет уменьшить размер таблицы на 40-70%, в зависимости от формата ее содержимого. В листинге 10.9 показан процесс сжатия таблицы, содержащей названия штатов США.
# myisampack. exe stateCompressing state. MYD: (50 records)- Calculating statistic- Compressing file32.42%Remember to run myisamchk – rq on compressing tables# myisamchk – rq state- check key delete - chain- check records delete – chain- recovering (with sort) MyISAM – table ‘state.MYI’Data records: 50- Fixing index 1- Fixing index 2 Листинг 10.9. (html, txt)