인덱스를 설명할 때 보통 책에 있는 색인을 예시로 설명을 한다

어떤 내용이 어디 있는지 확인하기 쉽지 않으니

초반부에 찾아보기 쉽게 특정 페이지의 위치를 표시해두는데

인덱스도 그러한 역할을 한다

만약 A테이블과 B테이블을 Join 하여 조회한다고 했을 때

DB 에서는 연결된 모든 레코드를 Full Scan 한다

조회 수 : R(A) * R(B)

당연히 데이터가 많으면 많을수록 그만큼 조회 해야 하는 데이터도 늘어나기에

성능적으로 문제가 생기거나 잘못하면 한번에 너무 큰 데이터를 불러와

터질수도 있는 상황이 발생한다.

인덱스는 색인을 붙여 Full Scan 을 하지 않고 빠르게 원하는 데이터를 찾게 해주는 도구이다.

B+Tree

대부분의 인덱스는 B+Tree 알고리즘을 이용해 데이터를 탐색한다.

(이외에 Hash, Bitmap 구조등을 사용하기도 한다)

image.png

크게 3가지 노드로 나뉜다.