MySQL默认存储引擎是InnoDB(5.5及以后),可通过SHOW ENGINES;查看所有引擎状态,其中Support为DEFAULT的即当前默认引擎,Transactions列显示是否支持事务。

MySQL 默认使用 InnoDB 作为存储引擎(5.5 及以后版本),但具体用哪个,得看你的服务器配置和建表时是否显式指定。要准确知道当前用的是什么,不能只靠猜测,得用命令查。
查看 MySQL 支持的所有存储引擎
运行以下语句,列出服务器加载的所有引擎及其状态:
SHOW ENGINES;
结果中重点关注三列:
- Engine:引擎名称,如 InnoDB、MyISAM、MEMORY、CSV 等
- Support:YES 表示可用,NO 表示禁用,DEFAULT 表示当前默认引擎
- Transactions:是否支持事务(InnoDB 是 YES,MyISAM 是 NO)
确认当前默认存储引擎
MySQL 启动时会加载一个默认引擎,新建表若不指定 ENGINE 子句,就用它。查法有两种(推荐后者):
- 老版本(SHOW VARIABLES LIKE 'storage_engine';
- 新版本(5.5+,尤其是 8.0):
SHOW VARIABLES LIKE 'default_storage_engine';
返回结果的 Value 字段就是默认值,比如 InnoDB。
查看某张表实际使用的存储引擎
一张表的引擎可能和默认值不同——建表或修改时显式指定过。查法有三种,常用前两种:
-
SHOW CREATE TABLE 表名;—— 在输出的 CREATE TABLE 语句末尾,直接看到ENGINE=InnoDB这样的声明 -
SHOW TABLE STATUS LIKE '表名';—— 查看结果中 Engine 列的值 - 从系统库查:
SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名';
批量查看某个库下所有表的引擎
适合运维或迁移前摸底:
SELECT TABLE_NAME, ENGINE, TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' ORDER BY ENGINE;
可顺便看到行数和引擎分布,一眼识别哪些表用了 MyISAM 或 MEMORY。










