В 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 . См. раздел Синтаксис оператора ALTER TABLE .
Обратите внимание на то, что MySQL поддерживает два различных типа таблиц: транзакционные (InnoDB и BDB ) и без поддержки транзакций (HEAP , ISAM , MERGE и MyISAM ).
Преимущества транзакционных таблиц (Transaction-safe tables, TST):
Надежность. Даже если произойдет сбой в работе MySQL или возникнут проблемы с оборудованием, свои данные вы сможете восстановить - либо методом автоматического восстановления, либо при помощи резервной копии и журнала транзакций.
Можно сочетать несколько операторов и принимать все эти операторы одной командой COMMIT .
Можно запустить команду ROLLBACK , чтобы отменить внесенные изменения (если работа не производится в режиме автоматической фиксации).
Если произойдет сбой во время обновления, все изменения будут восстановлены (в нетранзакционных таблицах все внесенные изменения не могут быть отменены).
Преимущества таблиц без безопасных транзакций (non-transaction-safe tables, NTST):
Работать с ними намного быстрее, так как не выполняются дополнительные транзакции.
Для них требуется меньше дискового пространства, так как не применяются дополнительные транзакции.
Для обновлений используется меньше памяти.
В операторах можно сочетать таблицы TST и NTST, чтобы взять лучшее от каждого типа.
В этом разделе :
8 Таблицы MyISAM Тип таблиц MyISAM принят по умолчанию в MySQL версии 3.23. Он основывается на коде ISAM и обладает в сравнении с ним большим количеством полезных дополнений.
8 Таблицы MERGE Таблицы MERGE (объединение) являются новшеством версии MySQL 3.23.25. В настоящее время код находится еще на стадии разработки, но, тем не менее, должен быть достаточно стабилен.
8 Таблицы ISAM В MySQL пока еще можно применять и устаревший тип таблиц ISAM.
8 Таблицы HEAP Для HEAP -таблиц используются хэш-индексы; эти таблицы хранятся в памяти.
8 Таблицы InnoDB Таблицы InnoDB в MySQL снабжены обработчиком таблиц, обеспечивающим безопасные транзакции (уровня ACID) с возможностями фиксации транзакции, отката и восстановления после сбоя.
8 Таблицы BDB или Berkeley_DB Поддержка таблиц BDB включена в дистрибутив исходного кода MySQL начиная с версии 3.23.34 и в бинарную версию MySQL-Max.
| |