최대 1 분 소요

인덱스 구조, 제대로 알고 써야 한다

데이터베이스에서 인덱스는 단순한 성능 개선 도구가 아닙니다. 잘못된 인덱스는 오히려 성능 저하를 유발하기도 하죠. 이번 글에서는 B-tree, Hash, Bitmap, GiST, R-tree 인덱스의 특징을 비교하고, 언제 어떤 인덱스를 사용하는 것이 효과적인지 정리해보겠습니다.

인덱스 구조별 개념

  • B-tree
    범용적으로 가장 널리 쓰이며, 정렬 기반 검색에 최적화된 인덱스입니다.

  • Hash
    정확한 값 매칭 검색에 강점을 가지며, 빠른 검색 속도를 제공합니다.

  • Bitmap
    다중 조건 검색에 유리하며, 데이터가 중복될수록 성능이 향상됩니다.

  • GiST (Generalized Search Tree)
    범용적인 탐색이 가능한 인덱스로, 위치 기반 검색이나 텍스트 검색에 사용됩니다.

  • R-tree
    공간 데이터 처리에 특화되어 있으며, 지리정보시스템(GIS)에서 자주 사용됩니다.

인덱스별 특성 비교

인덱스 종류 검색 속도 쓰기 성능 저장 공간 활용 분야
B-tree 빠름 보통 보통 범용 검색
Hash 매우 빠름 낮음 적음 키-값 검색
Bitmap 빠름 보통 적음 다중 조건 검색
GiST 보통 빠름 많음 위치/텍스트 검색
R-tree 보통 낮음 많음 공간 데이터

실무 활용 팁

  • 일반적인 WHERE 조건 쿼리에는 B-tree가 무난합니다.
  • =, IN 조건이 많다면 Hash 인덱스를 고려해보세요.
  • 성별, 상태값처럼 중복이 많은 필드에는 Bitmap 인덱스가 효과적입니다.
  • 위치 정보나 텍스트 검색이 필요하면 GiST나 R-tree를 고려해야 합니다.

마무리하며

인덱스는 단일한 성능 향상 도구가 아닙니다. 목적에 맞는 인덱스를 선택하고, 쿼리 특성과 데이터 패턴을 고려한 설계를 통해 데이터베이스 성능을 극대화할 수 있습니다.