Learning
토픽 170 / 201·NewSQL 및 특수 목적 DB

적응형 인덱싱 (Adaptive Indexing)

적응형 인덱싱 (Adaptive Indexing)

쿼리 워크로드에 따라 인덱스를 점진적으로 구축하고 자동 조정하는 기법으로, 초기 비용 없이 쿼리 실행 중 인덱스가 진화하여 최적화되는 자가 튜닝 방식

목적: 인덱스 생성 비용 제거, 워크로드 적응, 자동 최적화, DBA 부담 감소

배경: 전통적 인덱스는 선행 생성 필요, 워크로드 변화에 비적응적

Database Cracking (대표 기법)

  • 쿼리 실행 시 해당 범위의 데이터만 정렬/재배치
  • 첫 쿼리: 느림 (크래킹 수행), 반복 쿼리: 점점 빨라짐
  • 예: SELECT * WHERE A > 50 → A 컬럼을 50 기준으로 파티션

Cracking 동작

Adaptive Merging: Cracking + 정렬된 런 병합, 읽기/쓰기 균형

Hybrid Adaptive Indexing: Cracking + 부분 정렬, 성능 예측 가능성 향상

장점

  • 초기 인덱스 생성 비용 없음 (즉시 쿼리 가능)
  • 워크로드 자동 적응, 사용 패턴 반영
  • DBA 개입 최소화, 자가 튜닝

단점: 초기 쿼리 성능 불확실, 구현 복잡, 동시성 제어 어려움

성능 특성: 첫 쿼리 O(n), 반복 쿼리 점진적 개선 → 최종 O(log n)

적용사례: MonetDB(Cracking), 연구용 DBMS, HTAP 시스템

기술요소: Database Cracking, Adaptive Merging, Self-Tuning, 지연 인덱싱

비교: Adaptive(점진적/자동) vs Traditional(선행생성/수동) vs Partial Index(조건부)

연관: 인덱스, 쿼리 최적화, 자가 튜닝 DB, MonetDB, HTAP