MySQL EXPLAIN 문이란?
MySQL에서 EXPLAIN 문은 테이블 전체의 구조와 정보를 확인할 때 사용하는 명령어입니다. 흥미로운 점은 EXPLAIN 문 뒤에 테이블 이름과 열(컬럼) 이름을 함께 지정하면, 테이블 전체가 아닌 특정 열에 대한 정보만 간편하게 조회할 수 있다는 것입니다.
기본 문법
EXPLAIN table_name col_name;
table_name에는 조회할 테이블의 이름을, col_name에는 정보를 확인하고 싶은 열의 이름을 입력합니다.
예제 1: ID 열 정보 조회
mysql> EXPLAIN employee ID;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
+-------+---------+------+-----+---------+----------------+
1 row in set (0.11 sec)
위 쿼리는 employee 테이블의 ID 열에 대한 정보를 출력합니다. 결과를 통해 다음 사항을 알 수 있습니다.
- Type: int(11) – 정수형 데이터 타입
- Null: NO – NULL 값을 허용하지 않음
- Key: PRI – 기본 키(Primary Key)로 설정됨
- Extra: auto_increment – 값이 자동으로 증가함
예제 2: Name 열 정보 조회
mysql> EXPLAIN employee name;
+-------+-------------+------+-----+---------+---------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+---------+
| Name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+---------+
1 row in set (0.03 sec)
이번에는 같은 employee 테이블의 Name 열에 대한 정보를 조회했습니다. 이 열은 varchar(20) 타입으로 NULL 값을 허용하며, 기본 키나 별도의 인덱스로는 설정되어 있지 않습니다.
출력 결과 컬럼 설명
EXPLAIN 문의 실행 결과는 다음과 같은 항목으로 구성됩니다.
- Field: 열의 이름
- Type: 열의 데이터 타입
- Null: NULL 값 허용 여부 (YES / NO)
- Key: 키 설정 여부 (PRI: 기본 키, UNI: 고유 키, MUL: 다중 인덱스)
- Default: 기본값
- Extra: 추가 정보 (auto_increment 등)
마무리
이처럼 MySQL의 EXPLAIN 문은 테이블 이름 뒤에 열 이름만 덧붙이면 원하는 열의 구조를 빠르게 확인할 수 있습니다. 컬럼이 많은 대형 테이블에서 특정 열의 정의만 살펴보고 싶을 때 매우 유용하게 활용할 수 있습니다.