Моя база данных MySQL содержит несколько таблиц с использованием разных механизмов хранения (в частности, myisam и innodb). Как узнать, какие таблицы используя какой двигатель?
Как я могу проверить тип двигателя MySQL для конкретной таблицы?
Ответ 1
 SHOW TABLE STATUS WHERE Name = 'xxx'
Это даст вам (помимо всего прочего) столбец Engine, который вы хотите.
Ответ 2
Чтобы показать список всех таблиц в базе данных и их двигателях, используйте этот SQL-запрос:
SELECT TABLE_NAME,
       ENGINE
FROM   information_schema.TABLES
WHERE  TABLE_SCHEMA = 'dbname';
Замените dbname своим именем базы данных.
Ответ 3
SHOW CREATE TABLE <tablename>;
Меньше разборчивого, но более читаемого, чем SHOW TABLE STATUS.
Ответ 4
или просто
 show table status;
чтобы это занесло все таблицы в вашу базу данных.
Ответ 5
Немного о настройке ответа Jocker (я бы опубликовал комментарий, но пока у меня недостаточно кармы):
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
Это исключает представления MySQL из списка, в которых нет движка.
Ответ 6
SHOW CREATE TABLE <tablename>\G
будет отформатировать его намного лучше по сравнению с выходом
SHOW CREATE TABLE <tablename>;
Тройка \G также полезна для запоминания для многих других запросов/команд.
Ответ 7
mysqlshow -i <database_name>
отобразит информацию для всех таблиц конкретной базы данных.
mysqlshow -i <database_name> <table_name> 
сделает это только для конкретной таблицы.
Ответ 8
Если вы используете MySQL Workbench, вы можете щелкнуть правой кнопкой мыши по таблице и выбрать "alter table".
В этом окне вы можете увидеть свой Рабочий стол и изменить его.
 
Ответ 9
Если вы являетесь пользователем linux:
Чтобы показать движки для всех таблиц для всех баз данных на сервере mysql, без таблиц information_schema, mysql, performance_schema:
less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------";  mysql -e "use $i; show table status;"; done } | column -t)
Вам может понравиться это, если вы на Linux, по крайней мере.
Откроет всю информацию для всех таблиц в less, нажмите -S, чтобы нарезать слишком длинные строки.
Пример вывода:
--------------------information_schema--------------------
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  C
CHARACTER_SETS                                              MEMORY              10       Fixed       NULL   384             0            16434816            0             0          NULL            2015-07-13   15:48:45     NULL        N
COLLATIONS                                                  MEMORY              10       Fixed       NULL   231             0            16704765            0             0          NULL            2015-07-13   15:48:45     NULL        N
COLLATION_CHARACTER_SET_APPLICABILITY                       MEMORY              10       Fixed       NULL   195             0            16357770            0             0          NULL            2015-07-13   15:48:45     NULL        N
COLUMNS                                                     MyISAM              10       Dynamic     NULL   0               0            281474976710655     1024          0          NULL            2015-07-13   15:48:45     2015-07-13  1
COLUMN_PRIVILEGES                                           MEMORY              10       Fixed       NULL   2565            0            16757145            0             0          NULL            2015-07-13   15:48:45     NULL        N
ENGINES                                                     MEMORY              10       Fixed       NULL   490             0            16574250            0             0          NULL            2015-07-13   15:48:45     NULL        N
EVENTS                                                      MyISAM              10       Dynamic     NULL   0               0            281474976710655     1024          0          NULL            2015-07-13   15:48:45     2015-07-13  1
FILES                                                       MEMORY              10       Fixed       NULL   2677            0            16758020            0             0          NULL            2015-07-13   15:48:45     NULL        N
GLOBAL_STATUS                                               MEMORY              10       Fixed       NULL   3268            0            16755036            0             0          NULL            2015-07-13   15:48:45     NULL        N
GLOBAL_VARIABLES                                            MEMORY              10       Fixed       NULL   3268            0            16755036            0             0          NULL            2015-07-13   15:48:45     NULL        N
KEY_COLUMN_USAGE                                            MEMORY              10       Fixed       NULL   4637            0            16762755            0 
.
.
.
Ответ 10
перейдите в базу данных information_schema, вы увидите таблицу таблиц и выберите ее;
Mysql > используйте information_schema; Mysql > select table_name, движок из таблиц;
Ответ 11
Еще один способ, возможно, самый короткий, чтобы получить статус одного или совпадающего набора таблиц:
SHOW TABLE STATUS LIKE 'table';
Затем вы можете использовать LIKE-операторы, например:
SHOW TABLE STATUS LIKE 'field_data_%';
