개발 여정/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://lng1982.tistory.com/144