클러스터 인덱스 vs 비 클러스터 인덱스

박춘화·2021년 10월 18일
2

클러스터 인덱스(Clustered Index)

클러스터 인덱스는 다음 두 조건이 만족할 때만 생성된다.

  • 보조기억장치에 저장되는 데이터 또는 파일은 정렬된 순서를 가져야한다.
  • 키(핵심) 값이 없어 중복값이 있을 수 있어야 한다.

테이블에 클러스터 인덱스를 적용할 때마다 그 테이블에 정렬 작업이 수반된다. 클러스터 인덱스는 Primary Key처럼 한 테이블에 한 개만 생성할 수 있다. 또한, 클러스터 인덱스는 데이터를 가리키는 포인터가 아닌 데이터를 저장한 블록의 포인터를 저장한다.

비 클러스터 인덱스(Non-Clustered Index)

비 클러스터 인덱스는 책의 색인(Index)과 같은 역할을 한다. 데이터와 인덱스는 각각 다른 장소에 저장되므로 한 테이블에 여러 개의 비 클러스터 인덱스를 생성할 수 있다. 또한, 비 클러스터 인덱스는 데이터를 가리키는 포인터를 저장한다.

클러스터 인덱스와 비 클러스터 인덱스 비교

기준클러스터 인덱스비 클러스터 인덱스
속도빠르다느리다
사용 메모리적다많다
인덱스인덱스가 주요 데이터인덱스가 데이터의 사본(Copy)
개수한 테이블에 한 개한 테이블에 여러 개(최대 약 250개)
리프 노드리프 노드 자체가 데이터리프 노드는 데이터가 저장되는 위치
저장값데이터를 저장한 블록의 포인터값과 데이터의 위치를 가리키는 포인터
정렬인덱스 순서와 물리적 순서가 일치인덱스 순서와 물리적 순서가 불일치

참고 사이트

profile
함께 성장하는 개발자

0개의 댓글