MySQL.RU .:. Одобрено лучшими российскими программистами

Справочное руководство по MySQL

7.1.2.3 Характеристики сжатых таблиц

7.1.2.3 Характеристики сжатых таблиц

Таблицы этого тип предназначены только для чтения. Они генерируются при помощи дополнительного инструмента myisampack (pack_isam для таблиц ISAM):

  • Все дистрибутивы MySQL, даже выпущенные до предоставления общедоступной лицензии MySQL, могут читать таблицы, которые были сжаты при помощи myisampack.
  • Сжатые таблицы занимают очень мало дискового пространства; таким образом при применении данного типа значительно снижается использование дискового пространства. Это полезно при работе с медленными дисками (такими как компакт-диски).
  • Каждая запись сжимается отдельно (незначительные издержки при доступе). Заголовки у записей фиксированные (1-3 байта), в зависимости от самой большой записи в таблице. Все столбцы сжимаются по-разному. Ниже приведено описание некоторых типов сжатия:
    • Обычно для каждого столбца используются разные таблицы Хаффмана.
    • Сжимаются пробелы суффикса.
    • Сжимаются пробелы префикса.
    • Для хранения чисел со значением 0 отводится 1 бит.
    • Если у значений в целочисленном столбце небольшой диапазон, столбец сохраняется с использованием минимального по размерам возможного типа. Например, столбец BIGINT (8 байт) может быть сохранен как столбец TINYINT (1 байт) если все значения находятся в диапазоне от 0 до 255.
    • Если в столбце содержится небольшое множество возможных значений, тип столбца преобразовывается в ENUM.
    • Столбец может содержать сочетание указанных выше сжатий.
  • Для таблиц этого типа возможна обработка записей с фиксированной или динамической длиной.
  • Таблицы данного типа могут быть распакованы при помощи команды myisamchk.