MySQL 테이블의 스토리지 엔진 확인 방법
MySQL에서 특정 테이블이 MyISAM 엔진을 사용하는지, 아니면 InnoDB 엔진을 사용하는지 확인하려면 SHOW TABLE STATUS 명령어를 활용하면 됩니다. 이 명령 하나만으로 테이블의 엔진 종류는 물론, 행 형식, 생성 시간, 콜레이션 등 다양한 메타 정보를 한 번에 조회할 수 있습니다.
기본 문법
SHOW TABLE STATUS FROM yourDatabaseName LIKE 'yourTableName';
데이터베이스 이름과 테이블 이름을 지정하면 해당 테이블의 상세 정보가 출력되며, 그중 Engine 열을 확인하면 어떤 스토리지 엔진이 사용되고 있는지 바로 알 수 있습니다.
예제: 특정 테이블의 엔진 확인하기
예를 들어 'business' 데이터베이스에 있는 'student' 테이블의 엔진을 확인해 보겠습니다. 다음과 같이 쿼리를 실행합니다.
mysql> SHOW TABLE STATUS FROM business LIKE 'student';
실행 결과는 아래와 같습니다.
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | 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 | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | student | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 32768 | 0 | NULL | 2018-10-01 12:26:57 | NULL | NULL | utf8mb4_unicode_ci | NULL | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ 1 row in set (0.09 sec)
결과의 Engine 열을 보면 'student' 테이블이 InnoDB 엔진을 사용하고 있음을 확인할 수 있습니다. 이와 함께 행 형식(Row_format)은 Dynamic, 콜레이션(Collation)은 utf8mb4_unicode_ci, 테이블 생성 시간(Create_time) 등 부가 정보도 함께 제공됩니다.
데이터베이스 내 모든 테이블의 엔진 확인하기
특정 테이블이 아니라 데이터베이스에 속한 모든 테이블의 엔진을 한 번에 확인하고 싶다면 LIKE 절을 생략하면 됩니다.
SHOW TABLE STATUS FROM yourDatabaseName;
'business' 데이터베이스에 적용하면 다음과 같습니다.
mysql> SHOW TABLE STATUS FROM business;
이 명령을 실행하면 해당 데이터베이스의 모든 테이블 목록과 각 테이블이 사용 중인 엔진 정보가 함께 출력됩니다.
추가 팁: information_schema로 더 간결하게 조회하기
SHOW TABLE STATUS는 출력되는 열이 많아 결과가 복잡할 수 있습니다. 엔진 정보만 깔끔하게 확인하고 싶다면 information_schema.TABLES 뷰를 조회하는 방법도 유용합니다.
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'business';
이 방식은 테이블 이름과 엔진만 선택적으로 추출할 수 있어, 테이블 수가 많은 데이터베이스를 점검할 때 특히 편리합니다. MyISAM에서 InnoDB로 마이그레이션 작업을 준비할 때도 이 쿼리로 대상 테이블을 빠르게 파악할 수 있습니다.