클러스터드 인덱스, 비클러스터드 인덱스, B+-트리, 힙 파일

출제 빈도: ★★★★★ | 기출: ★136회


답안.

Ⅰ. 개요

클러스터드 인덱스(Clustered Index): 인덱스 키 순서대로 실제 데이터가 물리적으로 정렬되어 저장. 테이블당 1개. 비클러스터드 인덱스(Non-Clustered Index): 인덱스 구조가 데이터와 별도 저장. 실제 데이터 위치(포인터) 참조. 테이블당 여러 개 가능.

Ⅱ. 핵심 구성요소

I. 인덱스 기초 & 필요성
   - 풀 스캔: O(N), 인덱스: O(log N) ~ O(1)
   - B+-트리: 리프 노드에 데이터/포인터, 범위 검색 최적

II. 클러스터드 인덱스 구조
   
   [B+-트리 Clustered Index]
   루트 노드: [30|70]
      ↓         ↓
   내부 노드: [10|20|30] [40|50|70]
      ↓              ↓
   리프 노드: ─ 실제 데이터 행 (정렬 순서) ─→ 다음 리프
   
   특징:
   - 리프 = 실제 데이터 페이지 (별도 힙 없음)
   - 범위 쿼리 WHERE id BETWEEN 100 AND 200: 연속 I/O

III. 비클러스터드 인덱스 구조
   
   [Non-Clustered Index + Heap]
   B+-트리 (인덱스 전용)
   리프 노드: [키값 | RID(포인터)]
                    ↓
              힙 테이블 (실제 데이터, 무순서)
   
   InnoDB (MySQL):
   Secondary Index 리프 = [키값 | PK값]
   → PK로 Clustered Index 재탐색 (두 번 B-트리 탐색)


해당 키워드의 기술적 구성요소와 동작 원리를 서술한다.

### Ⅲ. 특징 및 비교

핵심 기술의 장단점과 유사 기술과의 차이를 분석한다.

### Ⅳ. 적용 사례

실무 환경에서의 적용 사례와 기대효과를 제시한다.

### Ⅴ. 전망

최신 기술 동향과 향후 발전 방향을 서술한다.