Как я знаю, использует ли таблица mysql myISAM или InnoDB Engine?
В MySQL нет способа указать механизм хранения для определенной базы данных, только для отдельных таблиц. Однако вы можете указать механизм хранения, который будет использоваться в течение одного сеанса:
SET storage_engine=InnoDB;
Таким образом, вам не нужно указывать это для каждой таблицы.
Как я могу подтвердить, если действительно все таблицы используют InnoDB?
3 ответа
Если вы используете SHOW CREATE TABLE, вам нужно разобрать движок в запросе.
Выбор из базы данных INFORMATION_SCHEMA является плохой практикой, поскольку разработчики оставляют за собой право изменить свою схему в любое время (хотя это маловероятно).
Правильный запрос: SHOW TABLE STATUS - вы можете получить информацию обо всех таблицах в базе данных:
SHOW TABLE STATUS FROM `database`;
Или для конкретной таблицы:
SHOW TABLE STATUS FROM `database` LIKE 'tablename';
Одна из колонок, которую вы получите, это Engine.
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'