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

13次阅读

MySQL 表存储引擎可创建时指定或 ALTER TABLE 修改,5.5 起默认为 InnoDB;用 SHOW ENGINES 和 SHOW VARIABLES 查看;CREATE TABLE 时用 ENGINE=xxx 声明,不写则用默认;ALTER TABLE ENGINE=xxx 会重建表并加锁;配置文件中设 default-storage-engine 可全局修改默认值。

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

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(尤其在需要事务、崩溃恢复或外键的场景)
text=ZqhQzanResources