Online Documentation for SQL Manager for MySQL

Механизмы хранения


MySQL предлагает несколько механизмов (типов) хранения, которые действуют как обработчики для различных типов таблиц. Все механизмы хранения делятся на:

  • поддерживающие транзакции;
  • не поддерживающие транзакции.

Тип хранения задается на вкладке Properties редактора таблиц при создании таблицы. При необходимости его можно изменить с помощью Мастера изменения механизма хранения таблиц.

 

ISAM

В таблицах ISAM используется индекс B-tree. Индекс хранится в файле с расширением .ISM, а данные - в файле с расширением .ISD. Таблицы ISAM можно проверять/восстанавливать при помощи утилиты isamchk. ISAM является устаревшим и не поддерживается в последних версиях сервера. ISAM был заменен MyISAM.

 

MyISAM

Тип таблиц MyISAM принят по умолчанию в MySQL версии 3.23. Он основывается на коде ISAM и обладает в сравнении с ним большим количеством полезных дополнений.

Каждая таблица MyISAM хранится на диске в трех файлах:

*.frm - файл, который хранит формат таблицы;

*.MYD (MYData) - файл данных;

*.MYI (MYIndex) - файл индекса.

 

HEAP (также известный как MEMORY)

Для HEAP-таблиц используются хеш-индексы; эти таблицы хранятся в памяти. Благодаря этому обработка их осуществляется очень быстро, однако в случае сбоя MySQL будут утрачены все данные, которые в них хранились. Тип HEAP очень хорошо подходит для временных таблиц!

Для внутренних HEAP-таблиц в MySQL используется 100%-ное динамическое хеширование без областей переполнения; дополнительное пространство для свободных списков не требуется. Отсутствуют при использовании HEAP-таблиц и проблемы с командами удаления и вставки, которые часто применяются в хешированных таблицах:

каждой таблице MEMORY соответствует один файл на диске. Имя файла начинается с имени таблицы и имеет расширение *.frm.

 

MERGE (также известный как MRG_MyISAM)

MRG_MyISAM

Таблица MERGE (или таблица MRG_MyISAM) представляет собой совокупность идентичных таблиц MyISAM, которые могут использоваться как одна таблица. К совокупности таблиц можно применять только команды SELECT, DELETE и UPDATE. Если же попытаться применить к таблице MERGE команду DROP, она подействует только на определение MERGE.

При создании таблицы MERGE на диске создается два файла:

*.frm - файл, который хранит формат таблицы;

*.MRG - файл, который содержит имена таблиц, которые должны быть использованы как единое целое..

 

InnoDB

Таблицы InnoDB в MySQL снабжены обработчиком таблиц (начиная с MySQL версии 3.23.44), обеспечивающим безопасные транзакции (уровня ACID) с возможностями фиксации транзакции, отката и восстановления после сбоя. Для таблиц InnoDB осуществляется блокировка на уровне строки, а также используется метод чтения без блокировок в команде SELECT.

Внешние ключи, поддерживаемые технологией InnoDB, могут свободно сочетать таблицы InnoDB с другими таблицами, даже в рамках одного оператора.

InnoDB предназначается для получения максимальной производительности при обработке больших объемов данных. Таблицы и индексы хранятся в табличном пространстве, которое может состоять из нескольких файлов. По эффективности использования процессора этот тип намного превосходит другие модели реляционных баз данных с памятью на дисках.

Таблицы InnoDB могут быть любого размера даже в тех операционных системах, где размер файла ограничен 2 Гб.

 

BDB (также известный как BerkeleyDB)

Использование BerkeleyDB повышает для ваших таблиц шансы уцелеть после сбоев, а также предоставляет возможность осуществлять операции COMMIT и ROLLBACK для транзакций. Дистрибутив исходного кода MySQL поставляется с дистрибутивом BDB, содержащим несколько небольших исправлений, которые позволяют устранить определенные проблемы при работе с MySQL. Неисправленные версии BDB при работе с MySQL использовать нельзя.

BerkeleyDB не поддерживается в последних версиях сервера.

 

EXAMPLE

Это незавершенный механизм хранения. Это пример в исходном коде MySQL, который иллюстрирует, как начать писать новые механизмы хранения.

Таблицы EXAMPLE хранятся в файле табличного формата (*.frm) на диске. Данные не сохраняются в этих таблицах. Индексирование не поддерживается.

Механизм EXAMPLE, в первую очередь, представляет интерес для разработчиков.

 

FEDERATED

В MySQL 5.0 можно использовать таблицы, расположенные на удалённом сервере, как будто они локальны. В этом случае нет транзакций.

 

ARCHIVE

Этот механизм хранения используется для хранения больших объемов данных без индексов.

Когда создается таблица ARCHIVE, то вместе с ней создаются следующие файлы в директории базы данных.

*.frm - файл формата таблицы;

*.ARZ - файл данных;

*.ARM - файл метаданных;

*.ARN - файл, который появляется в процессе оптимизации операций.

 

CSV

Этот механизм хранит данные в текстовых файлах, используя CSV формат.

При создании таблицы CSV, сервер создает два файла в каталоге базы данных:

*.frm - файл формата таблицы;

*.CSV - файл данных;

*.CSM - метафайл, который хранит состояние таблицы и число строк, которые существуют в таблице (в MySQL 5.1.9 и выше).

Механизм хранения CSV не поддерживает индексацию.

 

BLACKHOLE

Этот механизм хранения позволяет вносить данные, но данные не сохраняются. Запросы на извлечение всегда возвращают пустой результат.

Когда создается таблица типа BLACKHOLE, сервер создает файл табличного формата (*.frm) в директории базы данных.

Формат BLACKHOLE поддерживает все виды индексов.

Данные не сохраняются в таблице типа BLACKHOLE, но если включен бинарный журнал, то операторы SQL заносятся в журнал.

 

FALCON

Этот механизм хранения был разработан для удовлетворения требований современных баз данных. Для использования в качестве веб-служб или в другой среде, которая требует высокой производительности, поддержку транзакций и протоколирование функций, необходимых в этой среде. FALCON был специально разработан для систем, которые способны поддерживать большие архитектуры памяти и многопоточные и многоядерные среды.

Большинство 64-битных архитектур являются идеальными платформами для механизма Falcon, где есть больше свободного пространства в памяти и доступны 2 -, 4 - или 8- ядерные процессоры. Falcon поддерживает все стандартные типы данных, поддерживаемые MySQL.

 

NDB Cluster

Механизм хранения, используемый MySQL Cluster для работы с таблицами, расположенными на нескольких компьютерах.

 

GEMINI

Тип таблиц, разработанный компанией NuSphere. Не поддерживается последними версиями MySQL.

 

 

Для получения более подробной информации обращайтесь к официальной документации.