如何通过mysql查询检查特定数据库的MySQL引擎类型?
在 MySQL 中,数据库没有引擎类型;表具有引擎类型。友好手册甚至明确指出:
请务必记住,您不限于对整个服务器或架构使用相同的存储引擎:您可以对架构中的每个表使用不同的存储引擎。
您可以查询information_schema
数据库(在示例中替换您的数据库名称和表名称(:
SELECT `ENGINE` FROM `information_schema`.`TABLES`
WHERE `TABLE_SCHEMA`='your_database_name' AND `TABLE_NAME`='your_table_name';
您还可以获取全局环境变量 storage_engine
的值 - 仅在未指定引擎的情况下创建表时才用作默认值,它不会以任何其他方式影响服务器:
SHOW GLOBAL VARIABLES LIKE 'storage_engine'
数据库没有引擎。表有。您可以运行例如显示表状态:
SHOW TABLE STATUS FROM mydatabase
可用的引擎可以在SHOW引擎中找到。
提示:如果您使用的是官方命令行客户端而不是 GUI 工具,您可能希望使用 G
命令(不要与小写g
混淆(:
将当前语句发送到要执行的服务器,并使用垂直格式显示结果。
。这变成了这个:
mysql> SHOW TABLE STATUS;
+----------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+-----------
---+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+-----
------------------------------------------------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_leng
th | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comm
ent |
+----------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+-----------
---+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+-----
------------------------------------------------------+
| canal | InnoDB | 10 | Compact | 0 | 0 | 16384 | 0 |
0 | 27262976 | 1 | 2015-04-10 11:07:01 | NULL | NULL | utf8_general_ci | NULL | |
。进入这个:
mysql> SHOW TABLE STATUSG
*************************** 1. row ***************************
Name: canal
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 27262976
Auto_increment: 1
Create_time: 2015-04-10 11:07:01
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
*************************** 2. row ***************************
Name: cliente
Engine: InnoDB
[…]
SHOW TABLE STATUS
检索到这种东西,请参阅MySQL文档。
使用以下命令:
SHOW ENGINESG;
您的默认引擎将显示为支持:默认
数据库使用的引擎列表:
选择 TABLE_SCHEMA
,ENGINE
从 information_schema
中 。TABLES
分组依据 TABLE_SCHEMA
, ENGINE
按TABLE_SCHEMA
、ENGINE
排序;