MySQL 如何查看表的存储引擎

时间:2023-03-09 02:59:53
MySQL 如何查看表的存储引擎

MySQL 如何查看表的存储引擎

 

在MySQL中如何查看单个表的存储引擎? 如何查看整个数据库有那些表是某个特殊存储引擎,例如MyISAM存储引擎呢?下面简单的整理一下这方面的知识点。

如果要查看单个表的存储引擎,可以用show create table命令查看该表的存储引擎,那么有下面一些方法:

方法1:

mysql> show create table test;                 

+-------+----------------------------------------------+

| Table | Create Table                                 |

+-------+----------------------------------------------+

| test  | CREATE TABLE `test` (

  `id` int(11) DEFAULT NULL,

  `name` varchar(12) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------+----------------------------------------------+

1 row in set (0.00 sec)

 

mysql> 

MySQL 如何查看表的存储引擎

方法2:

mysql> show table status from MyDB where name='test' \G

*************************** 1. row ***************************

           Name: test

         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: 0

 Auto_increment: NULL

    Create_time: 2017-06-09 15:45:00

    Update_time: NULL

     Check_time: NULL

      Collation: utf8_general_ci

       Checksum: NULL

 Create_options: 

        Comment: 

1 row in set (0.01 sec)

MySQL 如何查看表的存储引擎

 

 

方法3:

mysql> 

mysql> select table_catalog

    ->       ,table_schema

    ->       ,table_name

    ->       ,engine

    -> from tables

    -> where table_schema='MyDB' and table_name='test';

+---------------+--------------+------------+--------+

| table_catalog | table_schema | table_name | engine |

+---------------+--------------+------------+--------+

| def           | MyDB         | test       | InnoDB |

+---------------+--------------+------------+--------+

1 row in set (0.00 sec)

 

mysql> 

MySQL 如何查看表的存储引擎

如果要查询某个库或所有实例里面表使用的存储引擎,那么可以使用information_schema.tables来查询。下面是简单的几个例子。

查询整个MySQL实例里面存储引擎为MyISAM的表

select table_catalog

      ,table_schema

      ,table_name

      ,engine

from information_schema.tables

where engine='MyISAM';

查询MyDB数据库里面存储引擎为MyISAM的表

select table_catalog

      ,table_schema

      ,table_name

      ,engine

from information_schema.tables

where table_schema='MyDB' and engine='MyISAM';