본문 바로가기

데이터베이스

클러스터 인덱스, 비 클러스터형인데스 차이

 

# 클러스터 인덱스, 비 클러스터형 인데스 차이

구분 클러스터형 비클러스터형
사용목적 테이블 속 레코드들을 물리적으로 정렬하여 메모리에 저장 비클러스터형 인덱스는 데이터행의 논리적 순서를 만듦. 또 그 행에 접근하는 포인터를 가짐
저장방법 데이터 페이지를 리프노드 인덱스에 저장 리프노드 인덱스에 데이터 페이지 저장 안함
크기 상대적으로 작음
접근속도 빠름 상대적으로 느림
추가디스크공간 필요없음 인덱스 저장을 위한 별도 공간 필요
키타입 디폴트로 테이블의 기본키가 클러스터형 인덱스가 됨 테이블에  독특한 제약조건 사용되고 복합키로 역할을 한다. 참고로 복합키는 각 튜플을 식별할 수 있는 두 개 이상의 속성들로 구성된 후보키
큰특징 클러스터 인덱스는 데이터 조회 성능을 향상시켜줌 조인에 사용되는 컬럼들을 가지고 키가 만들어져야함

# 클러스터형 인덱스 장점

 

1. 클러스터형 인덱스는 특정 컬럼으로 그룹핑하고 max, min, count 같은 함수를 사용하는 쿼리에 이상적인 옵션이 된다. 

2. 어떤 검색을 하면 곧장 특정 데이터 내에 지점으로 이동한다. 그래서 그 지점에서부터 순차적으로 데이터를 읽어 온다.

3. 클러스터형 인덱스는 location mechanism을 사용하는데 이것은 범위의 시작 위치에 있는 인덱스 엔트리를 찾기 위함이다. 

참고로 리프 노드를 데이터 엔트리, 그 외 노드를 인덱스 엔트리라고 부른다.

4.  검색 키워드가 어떤 범위에 속하는 값을 검사하는 경우 효과적이다. 

 

# 비클러스터형 인덱스 장점

1. 데이터 베이스로부터 데이터 검색 빠름

2. 클러스터형 인덱스와 관련된 오버헤드 비용을 피할 수 있음

3. 하나의 테이블에 여러 개의 인덱스를 만들 수 있음. 

 

# 클러스터형 인덱스 단점

1. 삽입, 삭제, 수정 시에 추가적으로 많은 작업이 발생

2. 클러스터 인덱스에 속하는 값이 변경되는 레코드 수정 시에 많은 시간이 소요됨.

3. 클러스터형 인덱스는 대부분 데이터 페이지를 포함함.

 

# 비클러스터형 인덱스 단점

1. 데이터를 논리적 순서로 정렬하지만 물리적 순서로 정렬하지 않음.

2. 클러스터링한 키가 매번 업데이트되면, 그에 대응하는 비클러스터형 인덱스 키도 클러스터형  업데이트가 발생함.