DB 인덱스 종류

Laigasus

Infra|2024년 8월 28일|마지막 수정 시간: 2025년 3월 27일|
type
status
date
slug
summary
tags
category
icon
password

소개

정의

데이터베이스 인덱스는 데이터베이스 테이블의 검색 속도를 향상시키기 위해 사용되는 데이터 구조입니다. 인덱스는 특정 열(또는 열의 집합)에 대한 정보를 저장하여 데이터베이스 엔진이 원하는 데이터를 빠르게 찾을 수 있도록 도와줍니다.
 

특징

  • 빠른 데이터 검색 인덱스를 사용하면 데이터베이스 쿼리의 실행 속도가 크게 향상됩니다.
  • 공간-시간 트레이드오프 인덱스는 추가 저장 공간을 사용하지만, 검색 시간을 단축시킵니다.
  • 유지 관리 필요 데이터가 변경될 때마다 인덱스도 업데이트해야 하므로 일정 수준의 오버헤드가 발생합니다.
 

종류

B*Tree

BTree 인덱스는 가장 일반적으로 사용되는 인덱스 유형 중 하나입니다. 이 인덱스는 균형 잡힌 트리 구조를 사용하여 데이터를 효율적으로 검색, 삽입, 삭제할 수 있게 해줍니다. BTree 인덱스는 대부분의 데이터베이스 시스템에서 기본적으로 지원되며, 다양한 데이터 유형과 쿼리 패턴에 적합합니다.
 
Oracle 데이터베이스에서의 사용 예시는 다음과 같습니다.
 

Bitmap

Bitmap 인덱스는 특정 열의 고유한 값이 적을 때 효과적인 인덱스 유형입니다. 이 인덱스는 각 고유 값에 대해 비트맵을 생성하여 데이터의 존재 여부를 표시합니다. Bitmap 인덱스는 대용량 데이터에서 특히 유용하며, 복잡한 쿼리에서 여러 조건을 효율적으로 결합할 수 있습니다.
 
Oracle 데이터베이스에서의 사용 예시는 다음과 같습니다.
이 예제에서는 "products" 테이블의 "category" 컬럼에 Bitmap 인덱스를 생성합니다. 이는 제품 카테고리와 같이 상대적으로 적은 수의 고유 값을 가진 컬럼에 적합합니다.
 

Reverse Key

Reverse Key 인덱스는 B-Tree 인덱스의 변형으로, 키 값을 역순으로 저장합니다. 이 인덱스는 주로 순차적으로 증가하는 값(예: 시퀀스나 타임스탬프)에 대한 인덱스 핫스팟 문제를 해결하기 위해 사용됩니다. Reverse Key 인덱스는 특히 Oracle 데이터베이스에서 지원되며, 높은 동시성 환경에서 인덱스 경합을 줄이는 데 효과적입니다.
 
Oracle에서의 Reverse Key 인덱스 생성 예시는 다음과 같습니다
 

Function Base Index

Function Base Index는 열 값에 대한 함수나 표현식의 결과를 기반으로 생성되는 인덱스입니다. 이 인덱스 유형은 복잡한 조건이나 계산된 값에 대한 검색 성능을 향상시키는 데 유용합니다. Function Base Index를 사용하면 쿼리에서 자주 사용되는 함수나 표현식의 결과를 미리 계산하여 저장할 수 있어, 쿼리 실행 시간을 단축시킬 수 있습니다.
 
Oracle 데이터베이스에서의 Function Base Index 생성 예시는 다음과 같습니다
 
Loading...