首页 > 编程笔记 > MySQL笔记 阅读:1

MySQL查看存储引擎(附带实例)

可以使用如下 SQL 语句查看 MySQL 8.0 支持哪些存储引擎:
mysql> SHOW ENGINES\G;
*************************** 1. row ***************************
      Engine: InnoDB
     Support: DEFAULT
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
           XA: YES
   Savepoints: YES
*************************** 2. row ***************************
      Engine: MRG_MYISAM
     Support: YES
     Comment: Collection of identical MyISAM tables
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 3. row ***************************
      Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 4. row ***************************
      Engine: BLACKHOLE
     Support: YES
     Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 5. row ***************************
      Engine: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 6. row ***************************
      Engine: CSV
     Support: YES
     Comment: CSV storage engine
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 7. row ***************************
      Engine: ARCHIVE
     Support: YES
     Comment: Archive storage engine
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 8. row ***************************
      Engine: PERFORMANCE_SCHEMA
     Support: YES
     Comment: Performance Schema
Transactions: NO
           XA: NO
   Savepoints: NO
*************************** 9. row ***************************
      Engine: FEDERATED
     Support: NO
     Comment: Federated MySQL storage engine
Transactions: NULL
           XA: NULL
   Savepoints: NULL
结果显示,MySQL 8.0 支持 9 种存储引擎,分别是 InnoDB、MRG_MYISAM、MEMORY、BLACKHOLE、MyISAM、CSV、ARCHIVE、PERFORMANCE_SCHEMA 和 FEDERATED。

此外,MySQL 8.0 还支持 NDB 存储引擎,它主要用于 MySQL 集群,大家知道即可。

上述结果中各个参数的含义如下表所示:

字段名 含义说明
Engine 存储引擎的名称。
Support MySQL 是否支持该存储引擎:YES=支持,NO=不支持,DEFAULT=系统默认。
Comment 对该存储引擎的描述。
Transactions 是否支持事务:YES=支持,NO=不支持。
XA 是否支持 XA 规范(分布式事务):YES=符合,NO=不符合。
Savepoints 是否支持事务保存点(部分事务回滚):YES=支持,NO=不支持。

设置系统默认的存储引擎

可以使用如下 SQL 语句查看系统默认的存储引擎:
mysql> SHOW VARIABLES LIKE '%default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)

也可以使用如下 SQL 语句查看系统默认的存储引擎:
mysql> SELECT @@default_storage_engine;
+--------------------------+
| @@default_storage_engine |
+--------------------------+
| InnoDB                   |
+--------------------------+
1 row in set (0.00 sec)

从结果中可以看到,系统默认的存储引擎是 InnoDB。如果在创建表的语句中没有显式指定表的存储引擎,就会默认使用 InnoDB 作为表的存储引擎。想要改变表的默认存储引擎,可以使用如下 SQL 语句:
mysql> SET default_storage_engine = MyISAM;

或者修改 my.cnf 配置文件,如下所示,之后重启 MySQL 服务:
default-storage-engine = MyISAM

相关文章