MySQL查看存储引擎(附带实例)
可以使用如下 SQL 语句查看 MySQL 8.0 支持哪些存储引擎:
此外,MySQL 8.0 还支持 NDB 存储引擎,它主要用于 MySQL 集群,大家知道即可。
上述结果中各个参数的含义如下表所示:
也可以使用如下 SQL 语句查看系统默认的存储引擎:
从结果中可以看到,系统默认的存储引擎是 InnoDB。如果在创建表的语句中没有显式指定表的存储引擎,就会默认使用 InnoDB 作为表的存储引擎。想要改变表的默认存储引擎,可以使用如下 SQL 语句:
或者修改 my.cnf 配置文件,如下所示,之后重启 MySQL 服务:
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