Классика баз данных - статьи

       

Форматы таблиц в MySQL


MySQL для хранения данных использует три типа таблиц: с фиксированной длиной строки, с динамической длиной строки и сжатые таблицы.

Таблицы с фиксированной длиной строки.

Этот формат применяется по умолчанию, если в таблице нет полей с типом VARCHAR,

BLOB или TEXT.

Все поля типа CHAR, NUMERIC и DECIMAL дополняются в конце пробелами.

Высокая скорость работы.

Легко кэшируются.

Легко восстановить после краха, так как все строки имеют постоянную длину.

Не требуют реорганизации ( помощью isamchk), до тех пор, пока не будет удалено очень много записей, и вы захотите освободить место на диске.

Обычно такие таблицы занимают больше места, чем таблицы с динамической длиной строки.

Таблицы с динамической длиной строки.

Этот формат применяется, если в таблице есть поля с типом VARCHAR, BLOB или TEXT.

Все строки динамические (CHAR хранятся как VARCHAR, кроме тех у которых длина меньше 4).

Каждое поле имеет дополнительный бит, который устанавливается, если строковое поле равно "" ( строка ), или если числовое поле равно 0 ( не то же самое, когда поле может иметь значение NULL).

Непустые строки хранятся в виде {_} {_}

Обычно такие таблицы занимают намного меньше места, чем таблицы с фиксированной длиной.

Ожидаемая длина строки вычисляется по формуле: 3+(количество полей + 7)/8+(количество полей типа CHAR)+(размер числовых типов в бинарном виде )+(длина всех строк )+(количество NULL-полей + 7)/8.

Сжатые таблицы.

Таблицы "только для чтения", их можно получить с помощью утилиты pack_isam. Эту утилиту получают все покупатели, которые приобрели расширенную поддержку MySQL.

Основная характеристика - занимают мало места.



Содержание раздела