개발 여정/DataBase (MySQL)

[DB] 클러스터드 인덱스 vs 넌클러스터드 인덱스 차이

calm-lee 2021. 12. 15. 19:34

 


클러스터드 인덱스 vs 넌클럭스터드 인덱스

 

  클러스터드 인덱스 넌클러스터드 인덱스
생성 물리적으로 행을 재배열  리프(Leaf) 페이지를 따로 생성
용량 원 테이블 하나만 사용하니 용량이 적음 따로 리프 페이지를 생성하니 용량을 많이 차지함
속도 검색 - 빠름
삽입/수정 - 느림
검색 - 느림
삽입/수정 - 빠름
선택도 30% 이내 사용 권장 3% 이내 사용 권장
최대 개수 테이블 당 1개 테이블 당 249개

 

비유를 하자면 클러스터드 인덱스는 책에서 필요한 내용이 있을 경우 인덱스 스티커를 붙여서 바로 찾을 수 있도록 하는 것이고, 넌클러스터드 인덱스는 목차를 통해서 찾는 것이다.

 


선택도란?

테이블 조회할 때 행이 필터링되는 비율

행(밀도)이 많으면 선택도가 낮고, 행(밀도)이 적으면 선택도가 높음

 

 

SELECT `전화번호` FROM `직원` WHERE 이름 LIKE '김%'; // 조건 적음 -> 밀도 높음 -> 선택도 낮음
SELECT `전화번호` FROM `직원` WHERE 이름 LIKE '김%' AND 나이 = 30; // 조건 많음 -> 밀도 낮음 ->  선택도 높음

 

 

 

References

https://gocoder.tistory.com/1826

https://mapu.tistory.com/38

https://lng1982.tistory.com/144