Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블이 MyISAM 또는 InnoDB 엔진을 사용하는지 확인하는 방법

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로 마이그레이션 작업을 준비할 때도 이 쿼리로 대상 테이블을 빠르게 파악할 수 있습니다.