如何设置表存储引擎_mysql engine配置

来源:这里教程网 时间:2026-02-28 20:44:19 作者:

MySQL 表的存储引擎是在创建表时指定的,也可以在后续通过

ALTER TABLE
修改(需满足引擎兼容性条件)。默认引擎从 MySQL 5.5 起是 InnoDB,但具体行为取决于版本和配置。

查看当前默认引擎和可用引擎

执行以下命令可确认当前 MySQL 实例支持哪些引擎及默认设置:

SHOW ENGINES;
— 查看所有引擎状态(
Support
列为
DEFAULT
表示当前默认)
SHOW VARIABLES LIKE 'default_storage_engine';
SHOW VARIABLES LIKE 'storage_engine';
(旧版本)

创建表时指定引擎

CREATE TABLE
语句末尾用
ENGINE=xxx
显式声明,例如:

CREATE TABLE users (id INT, name VARCHAR(20)) ENGINE=InnoDB;
CREATE TABLE logs (ts DATETIME, msg TEXT) ENGINE=MyISAM;
不写
ENGINE
时,将使用服务器默认引擎(通常是 InnoDB)

修改已有表的存储引擎

使用

ALTER TABLE ... ENGINE=xxx
,例如:

ALTER TABLE users ENGINE=MyISAM;
该操作会重建表,期间加锁,大表需谨慎;部分引擎(如 MEMORY)不支持含 BLOB/TEXT 列的表 若目标引擎不支持某些特性(如外键),MySQL 会报错或静默忽略(如 MyISAM 不支持外键,会丢弃约束定义)

全局或会话级默认引擎配置(my.cnf / my.ini)

可在 MySQL 配置文件中设置启动时的默认引擎:

添加或修改:[mysqld]
default-storage-engine = InnoDB

(MySQL 5.7+ 推荐用
default_storage_engine
,注意下划线)
重启 MySQL 生效;修改后新创建的表若未显式指定引擎,即采用此值 不建议设为 MyISAM(尤其在需要事务、崩溃恢复或外键的场景)

相关推荐