MySQL에서는 특정 데이터베이스에 대해 단일 테이블에 대해서만 스토리지 엔진을 지정할 수있는 방법이 없습니다. 그러나 다음을 사용하여 한 세션 동안 사용할 스토리지 엔진을 지정할 수 있습니다.
SET storage_engine=InnoDB;
따라서 각 테이블에 대해 지정할 필요가 없습니다.
실제로 모든 테이블이 InnoDB를 사용하고 있는지 어떻게 확인합니까?
답변:
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'