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




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

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

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

7.1.2.2 Характеристики динамических таблицОглавление7.1.3 Проблемы с таблицами MyISAM.