본문 바로가기
Etc

필수 Index 전략 4가지

by SuperDT 2025. 1. 5.

 

DB 조회 성능 향상을 위한 기초적인 인덱스 전략 4가지가 있습니다

기본적으로 어떤 것이 있는지 한 번 살펴보도록 하겠습니다

 

B-Tree 인덱스

  • 가장 기본적인 인덱스 구조로, 일반적인 RDBMS(Oracle, MySQL, PostgreSQL 등)에서 디폴트 인덱스 유형
  • 값이 정렬된 키(key) 기반으로 검색하므로, 범위 조회나 정확한 매칭 검색에 강점
  • 인덱스가 트리(Tree) 구조를 이루기 때문에, 검색이나 삽입, 삭제 작업의 평균 시간 복잡도가 O(logn) 수준을 유지
  • 정확한 값 매칭이나 범위 검색에 많이 사용되며 대다수의 일반 쿼리에 가장 적합

Bitmap 인덱스

  • 대용량의 데이터에서 특정 값(또는 값의 범위)을 빠르게 검색하도록 설계된 인덱스 구조
  • 각 비트(bit)가 컬럼의 키 값 존재 여부(불리언 값)를 나타내며, 여러 데이터 레코드가 비트맵(bit map) 형태로 인덱스 내부에 매핑
  • 같은 컬럼 값에 해당하는 데이터 행이 많을수록(카디널리티가 낮을수록), 비트맵 인덱스가 높은 성능을 발휘
  • 저장 공간 측면에서 효율적이도록 설계
  • 카디널리티가 낮은 컬럼이나 DML이 잦지않고, 읽기 위주의 DW나 OLAP 시스템에 적합

Function-based 인덱스

  • 함수를 적용한 컬럼 값으로 인덱스를 생성하는 기법
  • 인덱스 생성 시 함수가 적용된 결과를 미리 저장해 둠으로써, 쿼리 시 동일한 함수를 호출해 조건을 만족하는 레코드를 빠르게 찾도록 도움
  • 일반 B-Tree 인덱스가 컬럼의 원본 값에만 적용되어, 함수 사용 시 인덱스를 못 타는 문제를 해결
  • 쿼리에서 함수나 표현식을 자주 사용할 때 적합

Text 인덱스 (Full-Text Search Index)

  • 대용량 텍스트 데이터에서 특정 단어, 구, 구문 등을 효율적으로 검색하기 위한 인덱스 구조
  • RDBMS별로 MySQL의 FULLTEXT 인덱스, Oracle의 Oracle Text, PostgreSQL의 TSVector/TSQuery 등이 이에 해당
  • 일반적인 B-Tree 인덱스로는 처리하기 힘든 자연어 분석(토큰화, 스테밍, 불용어 제거 등)을 수행
  • 전문 검색(텍스트 필드 내 키워드 검색)에 적합

 

주로 사용하는 용도에 대해서만 간략하게 알아보았습니다

인덱스 전략은

데이터의 특성과 사용패턴에 따라 달라지기 때문에

직접 업무에 적용해보시면서 성능 변화를 측정해보시기 바랍니다

 

'Etc' 카테고리의 다른 글

JVM이 스택 기반 VM인 이유가 무엇일까?  (0) 2025.01.19
웹훅이란?  (0) 2025.01.12
DB 인덱싱 전략  (0) 2025.01.05
멀티 모듈을 사용하는 이유  (0) 2024.12.29
병렬처리가 효과적인 경우  (0) 2024.12.22