MySQL默认存储引擎是InnoDB(5.5及以后),可通过SHOW ENGINES;查看所有引擎状态,其中Support为DEFAULT的即当前默认引擎,Transactions列显示是否支持事务。
MySQL 默认使用 InnoDB 作为存储引擎(5.5 及以后版本),但具体用哪个,得看你的服务器配置和建表时是否显式指定。要准确知道当前用的是什么,不能只靠猜测,得用命令查。
运行以下语句,列出服务器加载的所有引擎及其状态:
SHOW ENGINES;
结果中重点关注三列
:
MySQL 启动时会加载一个默认引擎,新建表若不指定 ENGINE 子句,就用它。查法有两种(推荐后者):
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。