Структура хранения данных в MySQL
Структура хранения данных в MySQL
Для хранения каждой таблицы MySQL используется три файла. Например, средних размеров таблица mytable может выглядеть так:
-rw-rw-- - 1 root root 1034155 Jun 3 17:08 mytable.ISD
-rw-rw---- 1 root root 50176 Jun 3 17:08 mytable.ISM
-rw-rw-- - 1 root root 9114 Jun 3 14:24 mytable.frm
В файле ISD хранятся фактические данные. В файле ISM хранятся данные о ключах и прочие внутренние данные, необходимые MySQL для быстрого поиска данных в файле ISD. Файл f rm содержит структуру самой таблицы.
Файл ISM наиболее важен для функционирования MySQL. Он настолько важен, что ему посвящена целая утилита isamchk. Запуск isamchk -d выводит сведения о таблице:
# isamchk -d mytable
ISAM file: mytable
Data records: 1973 Deleted blocks: 0
Recordlength: 343
Record format: Packed
table description:
Key Start Len Index Type
1 2 50 unique text packed stripped
Важное поле, которое нужно отметить, это «Deleted blocks» (удаленные блоки). Если его значение слишком велико, то файл понапрасну занимает много лишнего места. К счастью, это пространство можно освободить. В результате выполнения следующей команды таблица будет просмотрена и создана заново, при этом будут в большинстве своем устранены ошибки и высвобождено свободное пространство:
isamchk -r mytable
Еще большего увеличения скорости можно добиться, применив к таблице команду Isamchk -а. Эта команда анализирует размещение данных в таблице. Ее следует выполнить после вставки или удаления большого числа записей.