Как я узнаю, использует ли таблица MySQL Myisam или Innodb двигатель?

StackOverflow https://stackoverflow.com/questions/4515490

Вопрос

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

SET storage_engine=InnoDB;

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

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

Это было полезно?

Решение

Если вы используете таблицу Show Create, вы должны проанализировать двигатель из запроса.

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

Правильный запрос для использования Показать статус таблицы - Вы можете получить информацию обо всех таблицах в базе данных:

SHOW TABLE STATUS FROM `database`;

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

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

Одна из столбцов, которые вы вернете, - это двигатель.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top