MySQL 테이블에서 UNIQUE 제약 조건에 의해 자동으로 생성된 인덱스를 확인하려면 SHOW INDEX 문을 사용하면 됩니다. 이 문장은 지정한 테이블에 존재하는 모든 인덱스의 상세 정보를 보여주므로, UNIQUE 제약 조건으로 만들어진 인덱스도 함께 확인할 수 있습니다.
구문
SHOW INDEX FROM table_name;
예제
'empl'이라는 테이블이 있고, 'empno' 컬럼에 UNIQUE 제약 조건이 설정되어 있다고 가정해 보겠습니다.
mysql> describe empl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | empno | int(11) | YES | UNI | NULL | | | F_name | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 2 rows in set (0.23 sec)
위 결과에서 'Key' 항목이 UNI로 표시된 것을 볼 수 있는데, 이는 해당 컬럼에 UNIQUE 제약 조건이 걸려 있다는 의미입니다. UNIQUE 제약 조건은 내부적으로 인덱스를 생성하며, 다음 쿼리로 그 인덱스를 확인할 수 있습니다.
mysql> Show Index from empl\G
*************************** 1. row ***************************
Table: empl
Non_unique: 0
Key_name: empno
Seq_in_index: 1
Column_name: empno
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.02 sec)결과 해석
위 결과 집합에서 주요 항목은 다음과 같이 해석할 수 있습니다.
- key_name: 생성된 인덱스의 이름을 나타냅니다. 여기서는 컬럼명인 'empno'가 인덱스 이름으로 사용되었습니다.
- column_name: 해당 인덱스가 적용된 컬럼의 이름입니다.
- Non_unique: 값이 0이면 중복을 허용하지 않는 유니크 인덱스라는 뜻입니다.
- Index_type: 인덱스의 자료 구조 유형을 나타내며, 일반적으로 BTREE 방식이 사용됩니다.
이처럼 SHOW INDEX 문을 활용하면 UNIQUE 제약 조건에 의해 자동 생성된 인덱스뿐만 아니라 테이블의 모든 인덱스 정보를 손쉽게 파악할 수 있습니다.