Очень часто бывает необходимо посмотреть тип движка у таблицы в 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 — это размер индекса в таблице в байтах;
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, POstgreSQL) на протяжении последних 24 лет.