MySQL에서 테이블 생성과 동시에 인덱스 정의하기
MySQL에서는 CREATE TABLE 문을 실행할 때 별도의 ALTER TABLE이나 CREATE INDEX 문을 사용하지 않고도 인덱스를 함께 정의할 수 있습니다. 이렇게 하면 테이블 생성과 인덱스 설정을 한 번에 처리할 수 있어 편리합니다.
1. 테이블 및 인덱스 생성
먼저 테이블을 생성하면서 StudentFirstName 컬럼에 인덱스를 추가해 보겠습니다.
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName varchar(20),
StudentAge int,
StudentCountryName varchar(100),
INDEX first_Name_index(StudentFirstName)
);
Query OK, 0 rows affected (1.01 sec)위 쿼리에서 INDEX first_Name_index(StudentFirstName) 부분이 바로 인덱스를 정의하는 구문입니다. 인덱스 이름(first_Name_index)과 대상 컬럼(StudentFirstName)을 지정하면 됩니다.
2. 테이블 구조 확인
DESC 명령어를 사용하면 테이블의 구조와 인덱스 적용 여부를 확인할 수 있습니다.
mysql> desc DemoTable;
3. 결과 확인
위 쿼리는 다음과 같은 결과를 출력합니다.
+--------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentFirstName | varchar(20) | YES | MUL | NULL | | | StudentAge | int(11) | YES | | NULL | | | StudentCountryName | varchar(100) | YES | | NULL | | +--------------------+--------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)
결과 해석
출력된 Key 컬럼을 보면 인덱스 적용 상태를 알 수 있습니다.
- PRI: 기본 키(PRIMARY KEY)를 의미합니다. StudentId는 AUTO_INCREMENT와 함께 기본 키로 설정되어 자동으로 인덱스가 생성됩니다.
- MUL: 해당 컬럼이 인덱스의 첫 번째 컬럼으로 사용되었음을 의미합니다. StudentFirstName에 생성한 first_Name_index가 정상적으로 적용된 것입니다.
이처럼 MySQL에서는 테이블 생성 시점에 인덱스를 함께 정의할 수 있으며, DESC 명령어로 Key 값을 확인하여 인덱스가 제대로 적용되었는지 검증할 수 있습니다.