테이블에 인덱스를 생성하거나 추가하는 경우가 많습니다.
인덱스를 추가하는 쿼리는 CREATE INDEX ~ON ~을 사용합니다.
CREATE INDEX 문으로 추가를 할 때 CLUSTERED 또는 NONCLUSTERED 를 설정할 수 있습니다.
어떠한 차이가 있는지 살펴보겠습니다.
클러스터 인덱스와 넌클러스터 인덱스
먼저 두개를 간략하게 비교해보면
CLUSTERED | NONCLUSTERED | |
인덱스 | 테이블당 1개만 가능 | 테이블에 여러개 가능(240개 정도) |
정렬 | 물리적으로 행을 정렬 | 물리적으로 행을 정렬 안함 |
클러스터 인덱스는 데이터를 등록할 때 지정한 인덱스 키로 다시 정렬을 해 값을 저장합니다.
반면 넌클러스터 인덱스는 데이터를 등록할 때 지정한 인덱스로 다시 정렬하지 않습니다.
흔히 비교하는 책의 목록으로 말하면 클러스터 인덱스는 책의 앞부분에 있는 목차라고 할 수 있습니다.
어디에 어떤 내용이 있는지 순서대로 정렬되어 있습니다.
넌클러스터 인덱스는 책 가장 뒤에 있는 찾기 목록이라고 할 수 있습니다.
정렬되어 있는 기준은 다르지만 찾기 목록에서 원하는 카테고리 내용을 찾아 쉽게 찾을 수 있게 되어있습니다.
이러한 차이로 인해 클러스터 인덱스는 테이블에 1개만 설정 가능합니다.
넌클러스터 인덱스는 테이블에 여러개 설정할 수 있습니다.
댓글