[sql] 데이터베이스 저장소의 클러스터 인덱스와 비클러스터 인덱스

관계형 데이터베이스 시스템에서 인덱스는 데이터 검색 및 조회 속도를 향상시키는 데 중요한 역할을 합니다. 인덱스는 데이터를 더 효율적으로 탐색할 수 있도록 구조화하며, 데이터베이스 엔진은 인덱스를 활용하여 비교 및 조인 연산을 최적화합니다.

인덱스는 클러스터비클러스터로 구분됩니다.

클러스터 인덱스

클러스터 인덱스는 데이터의 물리적 순서와 인덱스 순서가 일치하는 인덱스입니다. 이는 테이블의 데이터가 클러스터된 형태로 저장되어 있는 경우에 적합합니다. 클러스터 인덱스를 사용하면 특정 값에 대한 조회 성능이 뛰어나지만, 데이터가 자주 갱신되는 경우에는 성능 저하가 발생할 수 있습니다.

예시

CREATE CLUSTERED INDEX idx_example ON table_name (column_name);

비클러스터 인덱스

비클러스터 인덱스는 데이터의 물리적 순서와 인덱스 순서가 일치하지 않는 인덱스입니다. 테이블의 물리적인 순서와는 무관하게 인덱스만 따로 정렬됩니다. 이는 테이블의 데이터가 무작위로 저장되어 있거나 최신 데이터 추가 및 갱신이 자주 발생하는 경우에 유용합니다.

예시

CREATE NONCLUSTERED INDEX idx_example ON table_name (column_name);

클러스터 및 비클러스터 인덱스는 각각 다른 상황에서 가장 효과적으로 사용될 수 있으며, 데이터베이스 설계 및 성능 요구 사항을 고려하여 적절히 선택해야 합니다.

이상으로 데이터베이스 저장소의 클러스터 인덱스와 비클러스터 인덱스에 대해 알아보았습니다.


참고 문헌: