db:mysql:engines:myisam

  • транзакций нет
  • макс. диск: 256Тб
  • блокировка таблица
  • полнотекстовый поиск
  • работа в кластере: нет
  • поддержание целостности, внешние ключи: нет
  • репликация: да
  • макс. индексов: 64
  • макс. записей: 2^32
  • макс. длина ключа: 1000 байт
  • ключи занимают место на диске до (макс.): (key_length+4)/0.67
  • чувствительные к «падению» сервера, сложно восстанавливать
  • при отсутствии «дырок» (gaps) — вставки не конкурентные (блокировок не происходит)
  • возможно хранить файлы данных и индексов на разных устройствах

каждый столбец может иметь свою кодировку

  • макс. сумма длин VARCHAR и CHAR: 64к

Static (Fixed-length) формат таблиц

  • автоматически, если нет VARCHAR, VARBINARY, BLOB, TEXT столбцов
  • быстрее, безопаснее (устойчивее), лучше кешируется, требует больше места на диске
  • если указать принудительно, VARCHAR и CHAR заполняются пробелами, VARBINARY — нулями

Dynamic length формат таблиц

  • все строки длиной до 4 — VARCHAR
  • пустые строки и ноль (0) не занимают места на диске (NULL это не ноль)
  • запись (строка) фрагментируется автоматически при апдейтах (нужно запускать OPTIMIZE TABLE для дефрагментации)
  • сложнее восстановить при сбоях

Compressed

  • создается утилитой myisampack
  • read-only
  • рекомендуется для очень медленных носителей
  • может быть и fixed-length и dynamic-length
  • посмотрите в сторону Archive table engine

говорят, что MyISAM таблицы обязательно «ломаются» рано или поздно, так что будте готовы ;) не убивайте сервер во время записи не изменяйте таблицы несколькими серверами одновременно не изменяйте таблицы утилитой и сервером одновременно

Рекомендации: справочники

  • tbl_name.frm: Table definition
  • tbl_name.MYD: Table data
  • tbl_name.MYI: Table indexes
CHECK TABLE tbl_name QUICK;
REPAIR TABLE tbl_name EXTENDED;
  • db/mysql/engines/myisam.txt
  • Последнее изменение: 2016/10/22 18:26
  • mirocow