Как узнать, использует ли таблица mysql myISAM или InnoDB Engine?

В MySQL нет способа указать механизм хранения для определенной базы данных, только для отдельных таблиц. Однако вы можете указать механизм хранения, который будет использоваться в течение одного сеанса, с помощью:

SET storage_engine=InnoDB;

Поэтому вам не нужно указывать его для каждой таблицы.

Как подтвердить, действительно ли все таблицы используют InnoDB?

Ответ 1

Если вы используете SHOW CREATE TABLE, вам нужно разобрать двигатель из запроса.

Выбор из базы данных INFORMATION_SCHEMA - плохая практика, так как разработчики оставляют за собой право изменять свою схему в любое время (хотя это маловероятно).

Правильный запрос для использования - ПОКАЗАТЬ СТАТУС ТАБЛИЦЫ - вы можете получить информацию обо всех таблицах в базе данных

SHOW TABLE STATUS FROM `database`;

Или для конкретной таблицы:

SHOW TABLE STATUS FROM `database` LIKE 'tablename';

Один из столбцов, которые вы получите, это Engine.

Ответ 2

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'

Ответ 3

show create table <table> должен сделать трюк.