MyISAM

редактировать
MyISAM
Разработчики) Корпорация Oracle
Написано в C
Операционная система Кроссплатформенность
Тип Ядро базы данных
Лицензия Стандартная общественная лицензия GNU
Веб-сайт dev.mysql.com / doc / refman / 8.0 / en / myisam-storage-engine.html

MyISAM был механизмом хранения по умолчанию для версий системы управления реляционными базами данных MySQL до 5.5, выпущенных в декабре 2009 года. Он основан на более старом коде ISAM, но имеет множество полезных расширений.

СОДЕРЖАНИЕ

  • 1 Файловая система
  • 2 Особенности
    • 2.1 Вилки
  • 3 См. Также
  • 4 Примечания
  • 5 Внешние ссылки

Файловая система

Каждая таблица MyISAM хранится на диске в трех файлах (если он не разбит на разделы). Файлы имеют имена, которые начинаются с имени таблицы и имеют расширение, указывающее тип файла. MySQL использует файл.frm для хранения определения таблицы, но этот файл не является частью механизма MyISAM; вместо этого это часть сервера. Файл данных имеет расширение.MYD (MYData). Индексный файл имеет расширение.MYI (MYIndex). Индексный файл, если он утерян, всегда можно воссоздать, воссоздав индексы.

Формат файлов зависит от параметра таблицы ROW_FORMAT. Доступны следующие форматы:

  • ИСПРАВЛЕНО: Fixed - это формат, в котором все данные (включая типы переменной длины) имеют фиксированную длину. Этот формат быстрее читается и улучшает восстановление поврежденных таблиц. Если таблица содержит большие столбцы переменной длины (BLOB или TEXT), она не может использовать ФИКСИРОВАННЫЙ формат.
  • ДИНАМИЧНЫЙ: столбцы переменной длины не имеют фиксированного размера. Этот формат немного медленнее для чтения, но экономит место на диске.
  • СЖАТЫЕ: сжатые таблицы могут быть созданы с помощью специального инструмента, пока MySQL не запущен, и они доступны только для чтения. Хотя это обычно делает их нежизнеспособным вариантом, степень сжатия обычно значительно выше, чем у альтернатив.

Файлы MyISAM не зависят от системы, и, поскольку MyISAM не является транзакционным, их содержимое не зависит от текущей рабочей нагрузки сервера. Поэтому их можно копировать между разными серверами.

Функции

MyISAM оптимизирован для сред с интенсивными операциями чтения и небольшим количеством операций записи или вообще без них. Типичной областью, в которой можно было бы предпочесть MyISAM, является хранилище данных, поскольку оно включает запросы к очень большим таблицам, и обновление таких таблиц выполняется, когда база данных не используется (обычно ночью).

Причина, по которой MyISAM допускает быстрое чтение, - это структура его индексов: каждая запись указывает на запись в файле данных, а указатель смещен от начала файла. Таким образом, записи могут быть быстро прочитаны, особенно если формат ФИКСИРОВАН. Таким образом, строки имеют постоянную длину. Вставки тоже просты, потому что новые строки добавляются в конец файла данных. Однако операции удаления и обновления более проблематичны: при удалении должно оставаться пустое место, иначе смещения строк могут измениться; то же самое касается обновлений, поскольку длина строк становится короче; если обновление делает строку длиннее, строка фрагментируется. Чтобы дефрагментировать строки и потребовать пустое пространство, необходимо выполнить команду OPTIMIZE TABLE. Благодаря этому простому механизму статистика индекса MyISAM обычно довольно точна.

Однако простота MyISAM имеет несколько недостатков. Главный недостаток MyISAM - отсутствие поддержки транзакций. Также не поддерживаются внешние ключи. В обычных случаях использования InnoDB кажется быстрее, чем MyISAM.

Версии MySQL 5.5 и выше перешли на механизм InnoDB, чтобы гарантировать ограничения ссылочной целостности и более высокий уровень параллелизма.

MyISAM поддерживает индексирование FULLTEXT и типы данных OpenGIS.

Вилки

MariaDB имеет механизм хранения под названием Aria, который описывается как «безопасная альтернатива MyISAM». Однако разработчики MariaDB все еще работают над кодом MyISAM. Основное улучшение - «Сегментированный ключевой кэш». Если он включен, кеш индексов MyISAM делится на сегменты. Это улучшает параллелизм, поскольку потокам редко требуется блокировать весь кеш.

В MariaDB MyISAM также поддерживает виртуальные столбцы.

Дождь не включает MyISAM.

Смотрите также

Примечания

внешние ссылки

Последняя правка сделана 2024-01-05 11:27:33
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте