Spec-Zone .ru
спецификации, руководства, описания, API

14.1. Установка Механизма Хранения

Когда Вы составляете новую таблицу, можно определить механизм хранения специального назначения, чтобы использовать, добавляя ENGINE табличная опция к CREATE TABLE оператор:

-- ENGINE=INNODB not needed unless you have set a different default storage engine.CREATE TABLE t1 (i INT) ENGINE = INNODB;-- Simple table definitions can be switched from one to another.CREATE TABLE t2 (i INT) ENGINE = CSV;-- Some storage engines have their own specific clauses in CREATE TABLE syntax.CREATE TABLE t3 (i INT) ENGINE = MEMORY USING BTREE;

Когда Вы опускаете ENGINE опция, механизм хранения значения по умолчанию используется. Механизм значения по умолчанию InnoDB в MySQL 5.7. Можно определить механизм значения по умолчанию при использовании --default-storage-engine опция запуска сервера, или устанавливая default-storage-engine опция в my.cnf конфигурационный файл.

Можно установить механизм хранения значения по умолчанию для текущего сеанса, устанавливая default_storage_engine переменная:

SET default_storage_engine=NDBCLUSTER;

Механизм хранения для TEMPORARY таблицы, составленные с CREATE TEMPORARY TABLE может быть установлен отдельно от механизма для постоянных таблиц, устанавливая default_tmp_storage_engine, или при запуске или во времени выполнения.

Когда MySQL устанавливается на Windows, используя MySQL Configuration Wizard, InnoDB или MyISAM механизм хранения может быть выбран как значение по умолчанию. См. Диалоговое окно Использования Базы данных.

Чтобы преобразовать таблицу от одного механизма хранения до другого, используйте ALTER TABLE оператор, который указывает на новый механизм:

ALTER TABLE t ENGINE = InnoDB;

См. Раздел 13.1.14,"CREATE TABLE Синтаксис", и Раздел 13.1.6,"ALTER TABLE Синтаксис".

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

По умолчанию предупреждение сгенерировано всякий раз, когда CREATE TABLE или ALTER TABLE не может использовать механизм хранения значения по умолчанию. Чтобы предотвратить запутывающее, непреднамеренное поведение, если требуемый механизм недоступен, включите NO_ENGINE_SUBSTITUTION Режим SQL. Если требуемый механизм недоступен, эта установка производит ошибку вместо предупреждения, и таблица не составляется или изменяется. См. Раздел 5.1.7, "Режимы SQL Сервера".

Для новых таблиц MySQL всегда создает .frm файл, чтобы содержать таблицу и определения столбца. Таблица индексирует, и данные могут храниться в одном или более других файлах, в зависимости от механизма хранения. Сервер создает .frm файл выше уровня механизма хранения. Отдельные механизмы хранения создают любые дополнительные файлы, требуемые для таблиц, которыми они управляют. Если имя таблицы содержит специальные символы, имена для табличных файлов содержат закодированные версии тех символов как описано в Разделе 9.2.3, "Отображение Идентификаторов к Именам файлов".