Spec-Zone.ru › MySQL 8.4

18.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 8.4. Движок по умолчанию можно указать с помощью опции запуска сервера --default-storage-engine, или установив опцию default-storage-engine в файле конфигурации my.cnf.

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

SET default_storage_engine=NDBCLUSTER;

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

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

ALTER TABLE t ENGINE = InnoDB;

См. Раздел 15.1.20, «Инструкция CREATE TABLE» и Раздел 15.1.9, «Инструкция ALTER TABLE».

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

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

MySQL может хранить индексы и данные таблицы в одном или нескольких других файлах, в зависимости от движка хранения. Определения таблиц и столбцов хранятся в словаре данных MySQL. Отдельные движки хранения создают любые дополнительные файлы, необходимые для таблиц, которые они управляют. Если имя таблицы содержит специальные символы, имена файлов таблицы содержат закодированные версии этих символов, как описано в Разделе 11.2.4, «Сопоставление идентификаторов с именами файлов».

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

Spec-Zone.ru

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