1. Index를 만들면 생기는 일
데이터베이스 Index를 만들면 Index가 참조하는 칼럼의 값을 복사한 B-Tree를 만든다.
위와 같은 Table에 weight 칼럼을 기준으로 Index를 만들어 보자.
위 그림처럼 B-Tree 구조에 값을 복사, 정렬한 자료구조를 만든다.
Index 만들기 전 쿼리 실행 속도는 4초 이상이 걸렸다.
Index 만든 후 쿼리 실행 속도는 0초 대로 줄어드는 것을 확인할 수 있다.
2. 주의할 점
테이블에서 weight가 30이상 50이하인 동물의 평균 height를 쿼리해보자.
weight를 참조하는 Index를 만들어도 실행속도는 4초 이상이다.
왜냐하면 Index가 가진 정보는 weight인데 구하고자 하는 값은 height 가 필요하기 때문이다. 30에서 50이하인 데이터를 인덱스를 이용하여 빠르게 필터하더라도 각 튜플의 몸무게를 구하기 위해 저장소에 접근하기 때문에 시간이 오래걸린다.
이런 경우 Index가 두 개의 칼럼을 참조하여 만들면 성능을 개선할 수 있다. 위 그림에선 0초대로 실행 속도가 빨라졌다.
Index는 weight를 정렬하여 저장하고 weight와 같은 tuple의 height를 weight의 쌍으로 저장한다.
참조 :
가상 메모리 기본 (0) | 2022.02.05 |
---|---|
Clustered, Non-Clustered Index (0) | 2022.02.05 |
SOLID 원칙 (0) | 2022.02.03 |
바이트 오더링(Byte Ordering) (0) | 2022.02.02 |
정렬 기본문제 (두 배열의 원소 교체) (0) | 2022.01.30 |
댓글 영역