상세 컨텐츠

본문 제목

Database Index 알아보기

똑똑한 개발/Algorithm 과 Data Structure

by 성댕쓰 2022. 2. 5. 15:20

본문


1. Index를 만들면 생기는 일


데이터베이스 Index를 만들면 Index가 참조하는 칼럼의 값을 복사한 B-Tree를 만든다.

Animal Table

위와 같은 Table에 weight 칼럼을 기준으로 Index를 만들어 보자.

 

B-Tree Index

 

위 그림처럼 B-Tree 구조에 값을 복사, 정렬한 자료구조를 만든다.

 

Index 만들기 전 실행 속도

Index 만들기 전 쿼리 실행 속도는 4초 이상이 걸렸다.

 

Index 만든 후 실행 속도

Index 만든 후 쿼리 실행 속도는 0초 대로 줄어드는 것을 확인할 수 있다.



2. 주의할 점


테이블에서 weight가 30이상 50이하인 동물의 평균 height를 쿼리해보자.

 

weight를 참조하는 Index를 만들어도 실행속도는 4초 이상이다.

왜냐하면 Index가 가진 정보는 weight인데 구하고자 하는 값은 height 가 필요하기 때문이다. 30에서 50이하인 데이터를 인덱스를 이용하여 빠르게 필터하더라도 각 튜플의 몸무게를 구하기 위해 저장소에 접근하기 때문에 시간이 오래걸린다.

 

 

이런 경우 Index가 두 개의 칼럼을 참조하여 만들면 성능을 개선할 수 있다. 위 그림에선 0초대로 실행 속도가 빨라졌다.

 

 

Index는 weight를 정렬하여 저장하고 weight와 같은 tuple의 height를 weight의 쌍으로 저장한다.

 


참조 : 

데이터베이스 인덱스 알아보기 - YouTube

 

 

 

'똑똑한 개발 > Algorithm 과 Data Structure' 카테고리의 다른 글

가상 메모리 기본  (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

관련글 더보기

댓글 영역