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

MySQL 테이블의 스토리지 엔진(MyISAM·InnoDB) 확인 방법

MySQL 테이블의 스토리지 엔진 확인하기

MySQL에서 특정 테이블이 MyISAM 엔진을 사용하는지, 아니면 InnoDB 엔진을 사용하는지 확인하고 싶다면 SHOW TABLE STATUS 구문을 활용하면 됩니다. 이 명령은 테이블 이름뿐만 아니라 엔진 종류, 행 형식, 생성 시간 등 다양한 메타 정보를 한 번에 보여줍니다.

데이터베이스의 모든 테이블 조회

데이터베이스에 속한 여러 테이블의 엔진 정보를 한꺼번에 확인하려면 아래 구문을 사용합니다.

show table status from yourDatabaseName;

특정 테이블만 조회

특정 테이블 하나의 엔진만 확인하고 싶다면 LIKE 절에 테이블 이름을 지정하면 됩니다.

show table status from yourDatabaseName Like 'yourTableName';

실제 사용 예시

1) 전체 테이블의 엔진 조회

아래는 sampleTest 데이터베이스의 모든 테이블 엔진을 출력하는 쿼리입니다.

mysql> show table status from sampleTest;

실행 결과는 다음과 같습니다.

+--------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| 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 |
+--------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| datetimedemo | InnoDB | 10      | Dynamic    | 0    | 0              | 16384       | 0               | 0            | 0         | NULL           | 2018-12-05 09:22:54 | NULL                | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| primarydemo  | InnoDB | 10      | Dynamic    | 0    | 0              | 16384       | 0               | 0            | 0         | NULL           | 2018-12-05 09:23:34 | NULL                | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| student      | MyISAM | 10      | Dynamic    | 0    | 0              | 0           | 281474976710655 | 1024         | 0         | 1              | 2018-12-05 09:22:22 | 2018-12-05 09:22:23 | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
+--------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
3 rows in set (0.19 sec)

결과의 Engine 컬럼을 보면 datetimedemoprimarydemo는 InnoDB, student는 MyISAM 엔진을 사용하고 있음을 알 수 있습니다.

2) 특정 테이블의 엔진 조회

이번에는 student 테이블 하나만 지정해서 엔진 타입을 확인해 보겠습니다.

mysql> show table status from sampletest Like 'student';

실행 결과는 다음과 같으며, 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 | MyISAM | 10      | Dynamic    | 0    | 0              | 0           | 281474976710655 | 1024         | 0         | 1              | 2018-12-05 09:22:22 | 2018-12-05 09:22:23 | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
1 row in set (0.00 sec)

참고: 다른 확인 방법

SHOW TABLE STATUS 외에도 엔진 정보를 확인할 수 있는 방법이 있습니다.

  • SHOW CREATE TABLE: 테이블 생성 문구 마지막에 ENGINE=... 항목으로 엔진이 표시됩니다.
    SHOW CREATE TABLE student;
  • information_schema 조회: 데이터베이스 전체 테이블의 엔진을 SQL로 필터링해 볼 수 있습니다.
    SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'sampleTest';

이처럼 간단한 명령어 몇 개만 익혀두면 테이블별 스토리지 엔진을 손쉽게 파악할 수 있으며, 성능 최적화나 백업 전략을 세울 때 큰 도움이 됩니다.