피드로 돌아가기
Indexing & Query Optimization: How to Make Your Database Fast
Dev.toDev.to
Database

Full Table Scan을 O(log n) Lookup으로 전환한 인덱싱 최적화 전략

Indexing & Query Optimization: How to Make Your Database Fast

Mhamd Ghanoum2026년 6월 9일3intermediate

Context

대규모 e-commerce 시스템의 Vendor 테이블 내 잦은 데이터 조회 발생. 인덱스 부재로 인한 Full Table Scan으로 데이터 증가에 따라 시스템 성능이 급격히 저하되는 병목 지점 발생.

Technical Solution

  • 데이터 조회 복잡도를 O(n)에서 O(log n)으로 낮추기 위한 Index 구조 도입
  • Read 성능 향상과 Write 오버헤드 사이의 Trade-off를 고려한 Hot Path 중심의 선택적 인덱싱 설계
  • 데이터 특성에 따른 PostgreSQL Index Type 최적화(JSONB/Array는 GIN, Geospatial은 GiST, Time-series는 BRIN 적용)
  • 물리적 정렬을 통한 Range Query 최적화를 위한 Clustered Index와 포인터 기반 Non-Clustered Index의 적절한 배치
  • 불필요한 데이터 로드를 방지하기 위한 Column-level Select 및 Wildcard 위치 제어를 통한 Query 최적화
  • 조건부 인덱싱을 통한 저장 공간 효율화 및 검색 범위 축소를 위한 Partial Index 활용

- 조회 빈도가 높은 Hot Path 필드에 우선적으로 인덱스 적용 검토 - Write 성능 저하를 방지하기 위해 불필요한 인덱스 제거 및 최적화 - 데이터 타입에 맞는 Index Type(B-Tree, GIN, GiST, BRIN) 선정 - SELECT * 사용을 지양하고 필요한 컬럼만 명시적으로 호출 - Like 연산자 사용 시 Leading Wildcard(%) 배제로 인덱스 스캔 보장

원문 읽기