MySQL 5.5+ 默认存储引擎为 InnoDB,5.1 等旧版为 MyISAM;可通过 SHOW VARIABLES 或 SHOW ENGINES 查看,默认引擎在 Support 列为 DEFAULT;ALTER TABLE 可临时修改单表引擎,需注意兼容性与锁表风险;永久修改需在 my.cnf 中配置 default-storage-engine 并重启服务,仅影响新建表;建表时显式指定 ENGINE 最稳妥。

MySQL 的默认存储引擎在不同版本中有所变化,5.5 及之后版本默认是 InnoDB,而 5.5 之前(如 5.1)默认为 MyISAM。修改存储引擎主要分两种场景:临时修改单表引擎、永久修改全局默认引擎。
查看当前默认存储引擎
连接 MySQL 后执行:
SHOW VARIABLES LIKE 'default_storage_engine';
或查看所有支持的引擎及状态:
SHOW ENGINES;
注意 Support 列为 DEFAULT 的即为当前默认引擎。
修改单个表的存储引擎
使用 ALTER TABLE 命令可直接切换已有表的引擎(需确保数据兼容,如外键、全文索引等特性在不同引擎中支持情况不同):
ALTER TABLE table_name ENGINE = InnoDB;ALTER TABLE table_name ENGINE = MyISAM;
操作前建议备份数据。若表含大字段或数据量大,该操作会锁表并重建,生产环境请安排低峰期执行。
永久修改 MySQL 默认存储引擎
需修改 MySQL 配置文件 (Linux 下通常是 /etc/my.cnf 或 /etc/mysql/my.cnf,Windows 下为 my.ini),在 [mysqld] 段落下添加或修改:
default-storage-engine = InnoDB
保存后重启 MySQL 服务生效:
- Linux:
sudo systemctl restart mysqld或sudo service mysql restart - Windows:通过服务管理器重启 MySQL 服务
注意:该设置只影响后续新创建的表(未显式指定 ENGINE 的情况下),不会改变已有表的引擎。
建表时显式指定引擎(推荐做法)
最稳妥的方式是在 CREATE TABLE 语句中明确声明引擎,避免依赖默认值:
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50) ) ENGINE = InnoDB;
这样既清晰又可控,尤其在多版本 MySQL 共存或迁移场景下能减少兼容性问题。






























