본문 바로가기
카테고리 없음

[SQL Server] Index종류 및 Index Scan 종류

by akasha.park 2024. 9. 24.

 1. 클러스터형 인덱스 (Clustered Index)
인덱스 키의 순서에 따라 데이터가 실제로 물리적으로 정렬되어 저장
테이블당 하나의 클러스터형 인덱스만 가질 수 있으며, 기본 키(Primary Key)를 정의할 때 자동으로 생성됩니다.
테이블의 데이터가 인덱스 키 값에 따라 정렬됩니다.
범위 검색에서 성능이 뛰어남
순차적으로 자주 조회되는 테이블이나 범위 검색이 많은 쿼리에 유용
CREATE CLUSTERED INDEX ~



2. 비클러스터형 인덱스 (Non-Clustered Index)
인덱스와 실제 데이터가 분리되어 저장
인덱스는 테이블의 데이터를 가리키는 포인터(리프 노드)를 포함하며, 인덱스를 통해 데이터를 검색한 후 실제 테이블에서 추가 데이터를 조회합니다. 
하나의 테이블에 여러 개의 비클러스터형 인덱스를 생성할 수 있습니다.
CREATE NONCLUSTERED INDEX  ~~



3. 고유 인덱스 (Unique Index)
인덱스에 저장된 각 값이 중복될 수 없도록 강제하는 인덱스입니다. 
Primary Key와 Unique Key 제약 조건을 지원(데이터 중복을 방지)하는 데 사용됩니다.
CREATE UNIQUE INDEX ~~



4. 필터링된 인덱스 (Filtered Index)
테이블의 일부 데이터에만 인덱스를 적용하는 인덱스
쿼리에서 자주 사용되는 특정 조건에 대해 인덱스를 생성함으로써 인덱스 크기를 줄이고, 쿼리 성능을 최적화할 수 있습니다.
CREATE NONCLUSTERED INDEX ~ ON ~ WHERE ~;


5. 커버링 인덱스 (Covering Index)
쿼리에서 필요한 모든 컬럼을 인덱스에 포함하여, 인덱스만으로 쿼리를 처리할 수 있도록 하는 인덱스
인덱스만으로 데이터를 조회하므로 테이블을 조회하지 않고도 쿼리를 처리할 수 있어 성능이 매우 뛰어납니다

6. 컴포지트 인덱스 (Composite Index)
두 개 이상의 컬럼을 결합하여 인덱스를 생성

7. 공간 인덱스 (Spatial Index)
지리적 좌표 또는 공간 데이터를 효율적으로 검색하기 위해 사용
주로 지리 정보 시스템(GIS) 데이터베이스에서 사용됩니다.

8. XML 인덱스 (XML Index)
 XML 데이터를 효율적으로 처리하기 위한 인덱스
CREATE PRIMARY XML INDEX  ~  ON  ~;

9. 전체 텍스트 인덱스 (Full-Text Index)
대량의 텍스트 데이터를 효율적으로 검색하기 위해 사용
대량의 텍스트 데이터에서 특정 단어 또는 구를 빠르게 검색할 수 있도록 지원합니다.
문서, 기사, 설명 등 텍스트 데이터가 많은 테이블에서 특정 단어나 문장을 검색할 때 유용
CREATE FULLTEXT INDEX ON documents(content) 
KEY INDEX pk_doc_id 
WITH STOPLIST = OFF;

10. 파티션 인덱스 (Partitioned Index)