[sql] 인덱스의 종류 (클러스터화된 인덱스, 비클러스터화된 인덱스, 컴포지트 인덱스 등)

SQL 데이터베이스에서 인덱스는 데이터의 검색 및 접근 속도를 향상시키기 위해 사용되는 중요한 개념입니다. 인덱스는 테이블에 대한 빠른 검색을 가능하게 하며, 데이터베이스 성능을 향상시킬 수 있는 도구입니다.

SQL 인덱스에는 여러 종류가 있으며, 이번 포스트에서는 주요한 세 가지 종류를 살펴보겠습니다.

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

클러스터화된 인덱스는 데이터베이스 테이블의 실제 데이터 행(row)의 물리적인 순서를 바탕으로 생성되는 인덱스입니다. 이 인덱스는 한 테이블당 하나만 생성될 수 있으며, PRIMARY KEY or UNIQUE 제약 조건을 가진 열에 자동으로 생성됩니다.

클러스터화된 인덱스는 테이블 데이터를 실제로 재정렬하기 때문에, 특정 열을 기준으로 정렬된 상태로 데이터에 접근할 수 있습니다. 이는 행의 데이터를 검색하는 속도를 빠르게 하고, 범위 검색에 효율적입니다.

2. 비클러스터화된 인덱스(Non-Clustered Index)

비클러스터화된 인덱스는 클러스터화된 인덱스와는 달리, 테이블의 데이터 순서와는 관계없이 따로 생성되는 인덱스입니다. 하나의 테이블에 여러 개의 비클러스터화된 인덱스를 생성할 수 있습니다.

비클러스터화된 인덱스는 테이블의 데이터 행을 정렬하지 않고, 테이블에서 특정 열에 대한 인덱스를 만든 것입니다. 이는 데이터를 빠르게 검색할 수 있도록 인덱스의 자료구조를 사용하여 데이터를 찾을 수 있도록 합니다.

3. 컴포지트 인덱스(Composite Index)

컴포지트 인덱스는 두 개 이상의 열에 대한 인덱스로 구성된 인덱스입니다. 복합인덱스라고도 불리며, 여러 개의 열을 결합하여 하나의 인덱스로 생성됩니다.

컴포지트 인덱스는 여러 열을 하나의 인덱스로 결합하여 인덱스를 생성하므로, 여러 열에 대한 복잡한 검색 조건을 효율적으로 처리할 수 있습니다. 이는 데이터베이스 쿼리의 실행 속도를 개선할 수 있습니다.

결론

인덱스는 SQL 데이터베이스에서 빠른 데이터 검색 및 접근을 위해 사용되는 중요한 도구입니다. 클러스터화된 인덱스는 데이터의 물리적인 순서에 따라 생성되고, 비클러스터화된 인덱스는 데이터의 정렬과는 무관하게 생성됩니다. 또한, 컴포지트 인덱스는 여러 열을 결합하여 효율적인 검색을 가능하게 합니다.

참고 자료: