7 Типы таблиц MySQL
В MySQL версии 3.23.6 можно было выбирать из трех основных форматов таблиц
(ISAM
, HEAP
и MyISAM
). Более новые версии MySQL могут поддерживать
дополнительные типы таблиц (InnoDB
или BDB
) - в зависимости от варианта
установки.
При создании новой таблицы можно указать MySQL, какой тип таблицы для нее
использовать. Для таблицы и определений столбцов MySQL всегда создает файл
`.frm'. Индекс и данные хранятся в других файлах (их расширения зависят от
типа таблицы).
Обратите внимание: если необходимо использовать таблицы InnoDB
, при
запуске следует указать параметр innodb_data_file_path
. See section 7.5.2 Параметры запуска InnoDB.
Принятым по умолчанию типом таблиц в MySQL является MyISAM
. Если
попытаться воспользоваться таблицей, которая не была активизирована или
добавлена при компиляции, MySQL вместо нее создаст таблицу типа MyISAM
.
Это очень полезная функция, когда необходимо произвести копирование таблиц
с одного SQL-сервера на другой, а серверы поддерживают различные типы
таблиц (например, при копировании таблиц на подчиненный компьютер, который
оптимизирован для быстрой работы без использования транзакционных таблиц).
Тем не менее, такое автоматическое изменение таблиц может сбить с толку
новых пользователей MySQL. Мы планируем устранить эту проблему путем
введения в MySQL 4.0 предупреждений, которые будут выводиться при
автоматическом изменении типов таблиц.
Преобразовывать таблицы из одного типа в другой можно при помощи оператора
ALTER TABLE
. See section 6.5.4 Синтаксис оператора ALTER TABLE
.
Обратите внимание на то, что MySQL поддерживает два различных типа таблиц:
транзакционные (InnoDB
и BDB
) и без поддержки транзакций (HEAP
, ISAM
,
MERGE
и MyISAM
).
Преимущества транзакционных таблиц (Transaction-safe tables, TST):
-
Надежность. Даже если произойдет сбой в работе MySQL или возникнут
проблемы с оборудованием, свои данные вы сможете восстановить - либо
методом автоматического восстановления, либо при помощи резервной
копии и журнала транзакций.
-
Можно сочетать несколько операторов и принимать все эти операторы
одной командой
COMMIT
.
-
Можно запустить команду
ROLLBACK
, чтобы отменить внесенные изменения
(если работа не производится в режиме автоматической фиксации).
-
Если произойдет сбой во время обновления, все изменения будут
восстановлены (в нетранзакционных таблицах все внесенные изменения не
могут быть отменены).
Преимущества таблиц без безопасных транзакций (non-transaction-safe
tables, NTST):
-
Работать с ними намного быстрее, так как не выполняются дополнительные
транзакции.
-
Для них требуется меньше дискового пространства, так как не
применяются дополнительные транзакции.
-
Для обновлений используется меньше памяти.
В операторах можно сочетать таблицы TST и NTST, чтобы взять лучшее от
каждого типа.
Главы