Как посмотреть тип движка у таблиц в MySQL

Очень часто бывает необходимо посмотреть тип движка у таблицы в MySQL.
Как это сделать для 1 таблицы и для всех таблиц в нужной базе данных? Читаем ниже.

Самый простой способ узнать тип движка у таблицы — это вызвать ‘SHOW CREATE TABLE <имя_таблицы>‘ или ‘SHOW TABLE STATUS FROM <имя_базы> LIKE <имя_таблицы>‘.

mysql> USE mysql;
mysql> SHOW CREATE TABLE plugin\G;
*************************** 1. row ***************************
       Table: plugin
Create Table: CREATE TABLE `plugin` (
  `name` varchar(64) NOT NULL DEFAULT '',
  `dl` varchar(128) NOT NULL DEFAULT '',
  PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL plugins'
1 row in set (0.00 sec)

или

mysql> SHOW TABLE STATUS FROM mysql LIKE 'plugin'\G;
*************************** 1. row ***************************
           Name: plugin
         Engine: MyISAM
        Version: 10
     Row_format: Dynamic
           Rows: 4
 Avg_row_length: 51
    Data_length: 204
Max_data_length: 281474976710655
   Index_length: 2048
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2018-02-20 00:21:12
    Update_time: 2018-02-20 00:21:12
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment: MySQL plugins
1 row in set (0.00 sec)

и в строке ENGINE мы видим, что у таблицы plugin тип движка MyISAM.

На самом деле есть способ еще проще — это воспользоваться утилитой mysqlshow.

Посмотрим информацию о таблице plugin из БД mysql:

# mysqlshow -u root -p -i mysql plugin
Database: mysql  Wildcard: plugin
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+
| Name   | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation       | Checksum | Create_options | Comment       |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+
| plugin | MyISAM | 10      | Dynamic    | 4    | 51             | 204         | 281474976710655 | 2048         | 0         |                | 2017-12-10 23:37:48 | 2017-12-10 23:37:48 |            | utf8_general_ci |          |                | MySQL plugins |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+

Информации довольно много и она достаточно неудобно представлена (много колонок), но можно увидеть поле Engine — это то, что нам нужно.

Если же нужно посмотреть информацию в более удобном виде и узнать не только ENGINE, то можно выполнить такой SQL-запрос:

mysql> SELECT TABLE_NAME,ENGINE,ROW_FORMAT,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'mysql' ORDER BY ENGINE asc;
+---------------------------+--------+------------+------------+-------------+--------------+
| TABLE_NAME                | ENGINE | ROW_FORMAT | TABLE_ROWS | DATA_LENGTH | INDEX_LENGTH |
+---------------------------+--------+------------+------------+-------------+--------------+
| general_log               | CSV    | Dynamic    |          2 |           0 |            0 |
| slow_log                  | CSV    | Dynamic    |          2 |           0 |            0 |
| innodb_index_stats        | InnoDB | Compact    |      29542 |     5767168 |            0 |
| innodb_table_stats        | InnoDB | Compact    |       3057 |      425984 |            0 |
| slave_master_info         | InnoDB | Compact    |          0 |       16384 |            0 |
| slave_relay_log_info      | InnoDB | Compact    |          0 |       16384 |            0 |
| slave_worker_info         | InnoDB | Compact    |          0 |       16384 |            0 |
| db                        | MyISAM | Fixed      |        148 |       65560 |        13312 |
| help_topic                | MyISAM | Dynamic    |        533 |      510552 |        21504 |
| proxies_priv              | MyISAM | Fixed      |          2 |        1386 |         5120 |
| time_zone                 | MyISAM | Fixed      |          0 |           0 |         1024 |
| event                     | MyISAM | Dynamic    |          0 |           0 |         2048 |
| servers                   | MyISAM | Fixed      |          0 |           0 |         1024 |
| time_zone_leap_second     | MyISAM | Fixed      |          0 |           0 |         1024 |
| func                      | MyISAM | Fixed      |          3 |        1737 |         2048 |
| time_zone_name            | MyISAM | Fixed      |          0 |           0 |         1024 |
| ndb_binlog_index          | MyISAM | Dynamic    |          0 |           0 |         1024 |
| time_zone_transition      | MyISAM | Fixed      |          0 |           0 |         1024 |
| help_category             | MyISAM | Dynamic    |         40 |        1120 |         3072 |
| plugin                    | MyISAM | Dynamic    |          4 |         204 |         2048 |
| time_zone_transition_type | MyISAM | Fixed      |          0 |           0 |         1024 |
| help_keyword              | MyISAM | Fixed      |        485 |       95545 |        17408 |
| proc                      | MyISAM | Dynamic    |          0 |        1200 |         4096 |
| user                      | MyISAM | Dynamic    |        160 |       19620 |         6144 |
| columns_priv              | MyISAM | Fixed      |          0 |           0 |         4096 |
| help_relation             | MyISAM | Fixed      |       1090 |        9810 |        20480 |
| procs_priv                | MyISAM | Fixed      |          0 |           0 |         4096 |
| tables_priv               | MyISAM | Fixed      |          7 |        5957 |         8192 |
+---------------------------+--------+------------+------------+-------------+--------------+
28 rows in set (0.00 sec)

Колонка ENGINE — это тип движка у таблицы;
Колонка ROW_FORMAT — это формат строк таблицы;
Колонка TABLE_ROWS — это количества записей в таблице;
Колонка DATA_LENGTH — это размер данных в таблице в байтах;
Колонка INDEX_LENGTH — это размер индекса в таблице в байтах;

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.


Хотите оставить комментарий?