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;