구조가 만드는 효과

탐색은 위에서 결정되고, 읽기는 아래 리프에서 이어진다

내부 노드는 라우팅 키만 들고 내려갈 방향을 정합니다. 실제 키와 ROWID는 리프에 모아 두고, 리프끼리 연결해서 범위 검색과 정렬 읽기를 빠르게 만듭니다.

한 줄 요점 내부는 팬아웃을 키우고, 리프는 순차 스캔을 담당합니다.
내부 노드 키만 저장하는 라우팅 층
[20]
[40]
↓ 검색 키를 비교해 어느 리프 구간으로 내려갈지 결정합니다.
20 미만 20 이상, 40 미만 40 이상
리프 노드 키 + ROWID가 있는 실제 인덱스 층
[10, ROWID]
[20, ROWID]
↔
[30, ROWID]
[40, ROWID]
↔
[50, ROWID]
리프의 키는 항상 정렬되어 있고, 옆 리프로 바로 이동할 수 있습니다.
20, 40 같은 값은 내부에서는 라우팅 기준으로, 리프에서는 실제 키로 다시 나타납니다.
구조에서 보이는 특성
그래서 읽기와 저장이 어떻게 달라지나
데이터는 리프에만 저장

내부 노드는 키만 남깁니다.

내부 노드가 더 가벼워진다

한 노드에 더 많은 키를 담을 수 있어 팬아웃 증가와 트리 높이 감소에 유리합니다.

리프 노드는 서로 연결

왼쪽에서 오른쪽으로 이어집니다.

범위 검색이 연속 읽기로 바뀐다

시작 리프만 찾으면 트리를 다시 올라가지 않고 옆 리프를 따라 순차적으로 읽습니다.

내부 키는 리프에도 존재

내부의 키는 라우팅 기준입니다.

경로 판단과 실제 값 저장이 분리된다

같은 키가 두 층에 보이더라도 역할은 다릅니다. 내부는 길 안내, 리프는 실제 조회 대상입니다.

리프 키는 항상 정렬 상태

저장 순서가 아니라 키 순서를 유지합니다.

ORDER BY와 범위 스캔에 유리하다

정렬된 리프를 그대로 읽을 수 있으므로 추가 정렬 비용을 줄이기 쉽습니다.