-
카디널리티와 인덱싱CS 2022. 11. 3. 21:57
카디널리티
특정 칼럼에 중복 수치를 나타내는 지표이다.
중복도에 따라 높다 낮다고 표현을 한다.
- 특정 칼럼을 기준으로 중복도가 높으면 카디널리티가 낮다.
- 특정 칼럼을 기준으로 중복도가 낮으면 카디널리티가 높다.
유저 테이블이 있다고 가정해보자
칼럼으로는 id, name, gender, age, location 다섯 가지가 존재할 때
성별은 남, 녀로 카디널리티가 2라고 할 수 있다
지역이 만약 도를 기준으로 전국 8도가 있다고 하면 카디널리티는 8이다.
카디널리티가 높다, 낮다를 비교하는 것은 상대적이다.
gender는 location 칼럼에 비해 중복도가 높으므로 "location칼럼보다는 카디널리티가 낮다."
그렇다면 인덱싱을 할 때 카디널리티를 이용해 어떻게 거는 것이 좋을까?
결과적으로는 여러 칼럼을 동시에 인덱싱을 할 때 카디널리티가 높은 칼럼을 우선순위로 인덱싱을 하는 것이 유리하다고 한다.
이유가 무엇일까?
우리가 인덱싱을 하는 경우는 근본적으로 full scan을 하지 않으려고 인덱싱을 하는 것이다.
SQL의 동작 순서를 보면 인덱스를 사용해 SELECT를 하면 WHERE절의 순서와 상관없이 인덱싱이 걸린 칼럼부터 먼저 탐색하게 된다.
그래서 결과적으로 카디널리티가 높은 즉 중복도가 낮은 칼럼부터 인덱싱을 해주면 더 적은 분기로 탐색하여 빠른 결과를 만든다.
'CS' 카테고리의 다른 글
[CS study] 2022.06.29 (0) 2022.06.29 [CS study] 2022.06.17 (0) 2022.06.17 [CS study] 2022.06.13 (0) 2022.06.13 [CS study] 2022.06.08 (0) 2022.06.08 [CS study] 2022.06.01 (0) 2022.06.01