直接查表用的是SHOW CREATE TABLE或SHOW TABLE STATUS命令;查单张表推荐SHOW CREATE TABLE表名,结果中ENGINE=后即为引擎类型;SHOW TABLE STATUS更准确反映实际生效引擎。

直接查表用的是哪种引擎,最常用也最可靠的方式就三种,按使用频率和适用场景分清楚就行。
查单张表用的什么引擎
推荐用 SHOW CREATE TABLE 表名 —— 返回结果里会明确写出 ENGINE=InnoDB(或 MyISAM、MEMORY 等),一目了然。
另一个等效方法是 SHOW TABLE STATUS LIKE '表名',结果集中 Engine 这一列就是当前引擎。注意:必须加引号,且大小写敏感(取决于系统设置)。
小提醒:如果 MySQL 服务没启用 InnoDB,但建表语句写了 ENGINE=InnoDB,实际创建时会自动降级为默认引擎(比如 MyISAM),这时 SHOW CREATE TABLE 显示的仍是原语句写的引擎,而 SHOW TABLE STATUS 显示的是真实生效的引擎——后者更准。
查整个库所有表的引擎
用 SHOW TABLE STATUS FROM 数据库名,能一次性列出该库下全部表的 Engine、行数、创建时间等信息,适合批量核对。
或者走系统表查询:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';
这个写法更灵活,可以加 AND ENGINE != 'InnoDB' 找非默认引擎的表,也能配合 ORDER BY 或 LIMIT 控制输出。
确认 MySQL 支持哪些引擎 & 默认用哪个
运行 SHOW ENGINES;,看 Support 列:YES 表示已启用,DEFAULT 表示当前默认引擎(通常是 InnoDB)。
单独查默认值,用:
SHOW VARIABLES LIKE 'default_storage_engine';
MySQL 5.7 及以前可用 storage_engine,但 8.0+ 已废弃,只认 default_storage_engine。
图形化工具里怎么看
phpMyAdmin、MySQL Workbench 这类工具,在数据库 → 表列表页面,通常有“引擎”或“Type”列,直接显示;点进某张表的“结构”页,详情顶部也会标出引擎类型。
命令行之外,这是最快上手的方式,适合不常接触 SQL 的运维或开发人员。










