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

MySQL 테이블 생성 시 인덱스를 함께 만드는 방법

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 값을 확인하여 인덱스가 제대로 적용되었는지 검증할 수 있습니다.