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

16次阅读

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

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

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。

text=ZqhQzanResources