:: DEVELOPER ZONE
Содержание
MyISAM
MERGE
ISAM
HEAP
InnoDB
BDB
или BerkeleyDBBDB
BDB
BDB
BDB
BDB
в ближайшем будущем:BDB
BDB
BDB
В MySQL версии 3.23.6 можно было выбирать из трех основных форматов таблиц
(ISAM
, HEAP
и MyISAM
). Более новые версии MySQL могут поддерживать
дополнительные типы таблиц (InnoDB
или BDB
) - в зависимости от варианта
установки.
При создании новой таблицы можно указать MySQL, какой тип таблицы для нее использовать.
Для таблицы и определений столбцов MySQL всегда создает файл
.frm
. Индекс и данные хранятся в других файлах, в зависимости от типа
таблиц.
Обратите внимание: если необходимо использовать таблицы InnoDB
, при
запуске следует указать параметр innodb_data_file_path
. See Раздел 7.5.2, «Параметры запуска InnoDB».
Если попытаться воспользоваться таблицей, которая не была активизирована или
добавлена при компиляции, MySQL вместо нее создаст таблицу типа MyISAM
.
Это очень полезная функция, когда необходимо произвести копирование таблиц с
одного SQL-сервера на другой, а серверы поддерживают различные типы таблиц
(например, при копировании таблиц на подчиненный компьютер, который
оптимизирован для быстрой работы без использования транзакционных таблиц).
Тем не менее, такое автоматическое изменение таблиц может сбить с толку новых пользователей MySQL. Мы планируем устранить эту проблему путем введения предупреждений в новом клиент-серверном протоколе в MySQL 4.1, которые будут выводиться при автоматическом изменении типов таблиц.
Преобразовывать таблицы из одного типа в другой можно при помощи оператора
ALTER TABLE
. See Раздел 6.5.4, «Синтаксис оператора ALTER TABLE
».
Обратите внимание на то, что MySQL поддерживает два различных типа таблиц:
транзакционные (InnoDB
и BDB
) и без поддержки транзакций (HEAP
, ISAM
,
MERGE
и MyISAM
).
Преимущества транзакционных таблиц (Transaction-safe tables, TST):
Надежность. Даже если произойдет сбой в работе MySQL или возникнут проблемы с оборудованием, свои данные вы сможете восстановить - либо методом автоматического восстановления, либо при помощи резервной копии и журнала транзакций.
Можно сочетать несколько операторов и принимать все эти операторы
одной командой COMMIT
.
Можно запустить команду ROLLBACK
, чтобы отменить внесенные изменения
(если работа не производится в режиме автоматической фиксации).
Если произойдет сбой во время обновления, все изменения будут восстановлены (в нетранзакционных таблицах все внесенные изменения не могут быть отменены).
Лучше обеспечивает параллелизм при одновременных обновлениях таблицы и чтении.
Обратите внимание, что для использования таблиц InnoDB вам как минимум
следует указать опцию innodb_data_file_path
. See Раздел 7.5.2, «Параметры запуска InnoDB».
Преимущества нетранзакционных таблиц (non-transaction-safe tables, NTST):
Работать с ними намного быстрее, так как не выполняются дополнительные транзакции.
Для них требуется меньше дискового пространства, так как не применяются дополнительные транзакции.
Для обновлений используется меньше памяти.
В операторах можно сочетать таблицы TST и NTST, чтобы взять лучшее от каждого типа.
© 1995-2005 MySQL AB. All rights reserved.