直接查表用的是哪种引擎,最常用也最可靠的方式就三种,按使用频率和适用场景分清楚就行。
查单张表用的什么引擎
推荐用 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 的运维或开发人员。
