Как посмотреть тип движка у таблиц в 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 — это размер индекса в таблице в байтах;

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


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

avatar
1000

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о