Spec-Zone .ru
спецификации, руководства, описания, API
|
MyISAM
основано на более старом (и больше доступный) ISAM
у механизма хранения, но есть много полезных расширений.
Таблица 14.7. MyISAM
Хранение EngineFeatures
Пределы хранения | 256TB | Транзакции | Нет | Блокировка гранулярности | Таблица |
MVCC | Нет | Картографические данные вводят поддержку | Да | Geospatial, индексирующий поддержку | Да |
B-дерево индексирует | Да | T-древовидные-индексы | Нет | Хеш индексирует | Нет |
Полнотекстовый поиск индексирует | Да | Кластерные индексы | Нет | Кэши данных | Нет |
Индексируйте кэши | Да | Сжатые данные | Да | Зашифрованные данные [b] | Да |
Поддержка базы данных кластера | Нет | Поддержка репликации [c] | Да | Поддержка внешнего ключа | Нет |
Резервное копирование / восстановление момента времени [d] | Да | Поддержка кэша запроса | Да | Статистика обновления для словаря данных | Да |
[a] Сжатые таблицы MyISAM поддерживаются только при использовании сжатого формата строки. Таблицы используя сжатый формат строки с MyISAM только для чтения. [b] Реализованный в сервере (через функции шифрования), а не в механизме хранения. [c] Реализованный в сервере, а не в механизме хранения. [d] Реализованный в сервере, а не в механизме хранения. |
Каждый MyISAM
таблица сохранена на диске в трех файлах. У файлов есть имена,
которые начинаются с имени таблицы и имеют расширение, чтобы указать на тип файла. .frm
хранилища файлов формат таблицы. Файл данных имеет .MYD
(MYData
) расширение. Индексный файл имеет .MYI
(MYIndex
) расширение.
Определить явно, что Вы хотите a MyISAM
таблица, укажите на это с ENGINE
табличная опция:
CREATE TABLE t (i INT) ENGINE = MYISAM;
В MySQL 5.7 обычно необходимо использовать ENGINE
определить MyISAM
механизм хранения, потому что InnoDB
механизм значения по умолчанию.
Можно проверить или восстановить MyISAM
таблицы с mysqlcheck клиентом или myisamchk утилитой. Можно также сжаться MyISAM
таблицы с myisampack, чтобы привести намного меньше пространства в
рабочее состояние. См. Раздел 4.5.3, "mysqlcheck — Табличная Программа Обслуживания", Раздел
4.6.3, "myisamchk — Утилита Табличного обслуживания
MyISAM", и Раздел
4.6.5, "myisampack — Генерируют Сжатые, Таблицы MyISAM
Только для чтения".
MyISAM
у таблиц есть следующие характеристики:
Все значения данных сохранены младшим байтом сначала. Это делает машину данных и независимый от операционной системы. Единственные требования для двоичной мобильности - то, что машина использует целые числа со знаком two's-дополнения и IEEE формат с плавающей точкой. Эти требования широко используются среди основных машин. Совместимость на уровне двоичных кодов не могла бы быть применимой к встроенным системам, у которых иногда есть специфические процессоры.
Нет никакого существенного штрафа скорости за хранение младшего байта данных сначала; байты в строке таблицы обычно невыравниваются, и требуется немного больше обработки, чтобы считать невыровненный байт в порядке чем в обратном порядке. Кроме того, код в сервере, который выбирает значения столбцов, не строго ограничен во времени по сравнению с другим кодом.
Все числовые значения ключа сохранены высоким байтом сначала, чтобы разрешить, лучше индексируют сжатие.
Большие файлы (до 63-разрядной длины файла) поддерживаются на файловых системах и операционных системах, которые поддерживают большие файлы.
Есть предел (232) 2 (1.844E+19) строки в a MyISAM
таблица.
Максимальное количество индексирует на MyISAM
таблица
64.
Максимальное количество столбцов на индексирует, 16.
Максимальная длина ключа составляет 1000 байтов. Это может также быть изменено, изменяя источник и перекомпиляцию. Для случая ключа дольше чем 250 байтов, используется больший ключевой размер блока чем значение по умолчанию 1024 байтов.
Когда строки вставляются в сортированный порядок (как тогда, когда Вы используете
AUTO_INCREMENT
столбец), индексировать дерево разделяется так, чтобы
высокий узел только содержал один ключ. Это улучшает использование пространства в индексировать дереве.
Внутренняя обработка одного AUTO_INCREMENT
столбец на
таблицу поддерживается. MyISAM
автоматически обновления этот столбец для INSERT
и UPDATE
операции. Это делает AUTO_INCREMENT
столбцы быстрее (по крайней мере 10 %).
Значения наверху последовательности не снова используются, будучи удаленным. (Когда AUTO_INCREMENT
столбец определяется, поскольку последний столбец
многократного столбца индексирует, повторное использование значений, удаленных из вершины
последовательности, действительно происходит.) AUTO_INCREMENT
значение
может быть сброшено с ALTER TABLE
или myisamchk.
Строки динамического размера намного менее фрагментируются, когда смешивание удаляет с обновлениями и вставляет. Это делается, автоматически комбинируя смежные удаленные блоки и расширяя блоки, если следующий блок удаляется.
MyISAM
поддерживает параллельные вставки: Если у
таблицы нет никаких свободных блоков в середине файла данных, Вы можете INSERT
новые строки в это в то же самое время, когда другие потоки
читают из таблицы. Свободный блок может произойти в результате удаления строк или обновления
динамической строки длины с большим количеством данных чем его текущее содержание. Когда все свободные
блоки израсходованы (заполненные), будущее вставляет, становятся параллельными снова. См. Раздел
8.10.3, "Параллельные Вставки".
Можно поместить файл данных и индексный файл в различных каталогах на различных
физических устройствах, чтобы получить больше скорости с DATA DIRECTORY
и
INDEX DIRECTORY
табличные опции к CREATE TABLE
. См. Раздел
13.1.14,"CREATE TABLE
Синтаксис".
NULL
значения разрешаются в индексированных столбцах.
Это берет от 0 до 1 байта за ключ.
У каждого символьного столбца может быть различный набор символов. См. Раздел 10.1, "Поддержка Набора символов".
Есть флаг в MyISAM
индексный файл, который указывает,
была ли таблица закрыта правильно. Если mysqld запускается с --myisam-recover-options
опция, MyISAM
таблицы автоматически проверяются когда открыто, и восстанавливаются, если таблица не была закрыта
должным образом.
myisamchk отмечает таблицы как проверено, если Вы
выполняете его с --update-state
опция. myisamchk - быстро проверяет только те таблицы, у
которых нет этой метки.
myisamchk - анализируют статистику хранилищ для частей ключей, так же как для всех ключей.
myisampack может упаковать BLOB
и VARCHAR
столбцы.
MyISAM
также поддерживает следующие функции:
Поддержка истины VARCHAR
введите; a VARCHAR
столбец запускается с длины, сохраненной в одном или двух байтах.
Таблицы с VARCHAR
столбцы, возможно, фиксировали или динамическая длина строки.
Сумма длин VARCHAR
и CHAR
столбцы в таблице могут составить до 64 Кбит.
Произвольная длина UNIQUE
ограничения.
Форум, выделенный MyISAM
механизм хранения доступен в