Clustered Index, Non-Clustered

Panda·2022년 1월 27일
0

Database

목록 보기
1/6

Index 관련한 내용을 보다가 어쩌다가 공부하게 되었다.

Clustered Index

IndexValue
41a
42b
43c
44d

라는 index 테이블이 존재할때

무조건 순서가 보장이 된다.

예를 들어 42와 43사이에 데이터를 삽입하고 싶으면
새로운 데이터의 index를 43으로 설정하고
43, 44 데이터를 전부 밀어내고 index를 재설정 해줘야 한다.

만약 테이블의 데이터가 증가하게 된다면 이러한 처리작업의 시간이 늘게된다.

우리가 일반적으로 알고 있는 PK랑 매우 유사함.

특징

  • 범위검색이 뛰어남.
  • Index가 한테이블의 하나만 존재해야함.
  • 삽입, 삭제, 업데이트가 일어나게 되면 오버헤드가 존재한다.

Non-Clustered

KeyValue
45123
20231
1100
4412

위의 테이블은 순서가 보장되지 않아도 되고
Value는 해쉬 방식으로 빨리 찾을수 있다.

IndexValue
123a
231b
100c
12d

위의 테이블들은 약한참조 관계를 이루고 있다.

IndexValue
a20

이런 정보가 원본 데이터라고 할때
해쉬함수로 pk를 찾아서 검색을 함.

특징

  • 순서 상관 없음.
  • Index가 한 테이블에 여러개 존재할수 있음.
  • 추가 저장공간 필요 (DB의 10%)
  • 삽입 작업시 인덱스 생성 작업필요.
  • 카디널리티 (중복성)

카디널리티란?

주민번호 같이 중복성이 낮은건 카디널리티가 높다고 하고
이름같이 중복성이 높은건 카디널리티가 낮다고 합니다.

카디널리티가 높을수록 Index 사용을 고려해보기 좋다!!

모든 컬럼마다 index 작업을 할수는 없으니까
남용하면 좋지 않다.

Reference

https://www.youtube.com/watch?v=NkZ6r6z2pBg

profile
실력있는 개발자가 되보자!

0개의 댓글