출처 : OCMKOREA
Selectivity(선택도)
(찾고자 하는 행)을 전체 행의 수로 나눈 결과이다.
테이블 이름 : 회원
번호 성명 지역
--------------------
1 김영태 마포
2 백승엽 강남
3 이창훈 강남
4 설진욱 노원
5 박우희 마포
6 박철민 강남
7 조상현 강남
8 오우석 강남
9 윤권 마포
10 인은주 노원
Case 1: 회원 번호 1번(김영태)의 분포도
select 번호, 성명, 지역 from 회원
where 번호 = 1;
--> 1건 나옴
선택도(번호) = 1 / 10 = 0.1
Case 2: 강남 지역의 분포도(총 5명)
select 번호, 성명, 지역 from 회원
where 지역 = '강남';
--> 5건 나옴
선택도(지역) = 5 / 10 = 0.5
정리
값이 작을 수록 선택도가 좋다고 한다.
위의 예제에서는 Case 1이 더 선택도가 좋다고 한다.
즉, 번호 칼럼이 인덱스의 후보가 될 수 있다.
Density(조밀도)
일반적으로 특정 칼럼을 대상으로 따지는 개념이다.
예를 들어 위 예제의 지역 칼럼을 가지고 따져 보자.
Case 1: 노원 사는 사람(총 2명)
select 번호, 성명, 지역 from 회원
where 지역 = '노원';
--> 2건 나옴
Case 2: 강남 사는 사람(총 5명)
select 번호, 성명, 지역 from 회원
where 지역 = '강남';
--> 5건 나옴
정리
unique 인덱스는 저밀도이다.(ID, 주민번호 등등)
중복되는 행수가 많을 수록 고밀도이다.(강남 사는 사람)
최적화 실행 계획
FTS을 수행하여 [강남] 사는 사람을 검색한다.
인덱스를 사용하여 [노원] 사는 사람을 검색한다.
Cardinality
행 집합에서 행의 수를 표시
Base cardinality
기본 테이블에 행의 수
Join cardinality
두 행 집합이 함께 조인되었을 때, 생산된 행의 수
Distinct cardinality
행 집합의 컬럼에 유일한 값의 수
Group cardinality
GROUP BY 연산 후에 행 집합에서 생성된 행의 수
Cost
작업 단위의 수를 말한다.
옵티마이저는 디스크 I/O, CPU 사용, 메모리 사용을 작업의 단위로 사용을 한다.
댓글 없음:
댓글 쓰기