Spec-Zone.ru › MySQL 5.7

15.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;
CREATE TABLE t3 (i INT) ENGINE = MEMORY;

Если опция 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, либо при запуске, либо во время работы.

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

ALTER TABLE t ENGINE = InnoDB;

Смотрите Раздел 13.1.18, “CREATE TABLE Statement” и Раздел 13.1.8, “ALTER TABLE Statement”.

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

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

Для новых таблиц MySQL всегда создаёт файл .frm для хранения определений таблицы и столбцов. Индексы и данные таблицы могут храниться в одном или нескольких других файлах, в зависимости от движка хранения. Сервер создаёт файл .frm выше уровня движка хранения. Отдельные движки хранения создают любые дополнительные файлы, необходимые для таблиц, которые они управляют. Если имя таблицы содержит специальные символы, имена файлов таблицы содержат закодированные версии этих символов, как описано в Разделе 9.2.4, “Mapping of Identifiers to File Names”.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/storage-engine-setting.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API