[sql] 인덱스의 종류와 생성 방법

SQL에서 인덱스는 데이터베이스 성능을 향상시키고 쿼리 실행 속도를 향상시키는 데 도움이 됩니다. 여러 종류의 인덱스가 있으며, 각각의 종류는 특정한 작업에 더 적합합니다. 여기에서는 인덱스의 주요 종류와 각각의 생성 방법에 대해 알아보겠습니다.

1. 클러스터형 인덱스 (Clustered Index)

클러스터형 인덱스는 테이블의 데이터를 정렬된 형태로 저장하는 인덱스로, 각 테이블당 하나의 클러스터형 인덱스만 가질 수 있습니다. 이런 인덱스는 테이블에 데이터를 저장하는 방식을 변경하므로 주의해서 사용해야 합니다.

클러스터형 인덱스는 테이블 생성시 특정 컬럼에 대해 PRIMARY KEY 제약 조건을 설정하면 자동으로 생성됩니다.

CREATE TABLE my_table (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

2. 비클러스터형 인덱스 (Non-clustered Index)

비클러스터형 인덱스는 데이터 행의 물리적인 순서와 상관없이 인덱싱하는 방식으로, 하나의 테이블에 여러 개의 비클러스터형 인덱스를 생성할 수 있습니다.

비클러스터형 인덱스는 다음과 같이 생성할 수 있습니다.

CREATE INDEX idx_name ON my_table(name);

3. 고유 인덱스 (Unique Index)

고유 인덱스는 해당 열에 대해 중복된 값을 허용하지 않습니다. 이 인덱스는 데이터 무결성 유지에 도움이 됩니다.

고유 인덱스는 다음과 같이 생성할 수 있습니다.

CREATE UNIQUE INDEX idx_name ON my_table(name);

4. 다중 열 인덱스 (Composite Index)

다중 열 인덱스는 두 개 이상의 열에 대해 인덱싱하는 방식으로, 여러 열에 대한 검색 쿼리를 실행할 때 효율적입니다.

다음은 다중 열 인덱스를 생성하는 예시입니다.

CREATE INDEX idx_name ON my_table(col1, col2);

이렇게 인덱스를 적절히 활용하여 데이터베이스의 성능을 최적화할 수 있습니다.

위의 내용은 SQL에서 사용되는 주요 인덱스의 종류와 각각의 생성 방법에 대해 설명한 것입니다. 인덱스를 적절히 활용하여 데이터베이스의 성능을 향상시키는 데 도움이 되길 바랍니다.

참고 문헌: Oracle Documentation