如何查看当前存储引擎_mysql引擎查询方法

来源:这里教程网 时间:2026-02-28 20:35:52 作者:

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。

相关推荐