데이터베이스에서 **인덱스(Index)**는 테이블 조회 성능을 높이기 위해 사용하는 구조입니다.
대표적으로 B-Tree 인덱스와 Hash 인덱스 두 가지가 널리 쓰이며, 각각 특징과 장단점이 있습니다.
1. B-Tree 인덱스
- **B-Tree (Balanced Tree)**는 대부분의 관계형 DB(MySQL, PostgreSQL, Oracle 등)에서 기본 인덱스로 사용됩니다.
특징
- 균형 잡힌 트리 구조로 데이터가 정렬되어 저장
- 범위 검색(range query) 효율적 (
BETWEEN, <, >, LIKE 'abc%')
- 삽입/삭제 시에도 균형 유지
- Primary Key, Unique Key 등 기본 인덱스로 자주 사용
장점
- 정렬된 데이터에 대한 검색/범위 조회 빠름
- 트랜잭션 환경에서 안정적
- 대부분의 쿼리 패턴에 범용적
단점
- 해시보다 단일 값 검색은 조금 느릴 수 있음
- 디스크 I/O가 많은 경우 구조 유지 비용 발생
사용 예시