본문 바로가기

TIL(Today I Learned)

[20230920 TIL 데이터베이스] 인덱스

#인덱스란?
1. 인덱스는 데이터베이스에서 데이터 검색을 빠르게 하는 핵심 구성 요소다. 특정 열(컬럼)을 기반으로 생성되며, 해당 열의 값을 효율적으로 정렬 및 저장하여 쿼리의 실행 속도를 향상시킨다. 이로써 데이터베이스 성능 최적화와 빠른 데이터 검색이 가능해진다.

2. 인덱스는 일반적으로 B-트리(B-Tree)와 같은 트리 구조로 구성된다. B-트리 인덱스는 다음과 같은 핵심 구성 요소로 이루어져 있다:

루트 노드 (Root Node): 인덱스의 시작점을 나타내며 다른 노드로의 경로를 제공한다.

브랜치 노드 (Branch Nodes): 루트 노드 다음에 있는 브랜치 노드들은 데이터를 검색하기 위한 경로를 결정한다. 이들은 키 값을 기반으로 하위 노드로 이어지는 분기점 역할을 한다.

리프 노드 (Leaf Nodes): 가장 하위 레벨에 있는 리프 노드는 실제 데이터 레코드를 가지고 있습니다. 이 레코드들은 인덱스의 키 값을 기반으로 정렬되어 있으며, 쿼리에서 필요한 데이터를 검색하는 데 사용된다.

키 (Keys):인덱스의 핵심 요소로, 검색 및 정렬을 위해 데이터 열(컬럼)의 값을 포함한다.

포인터 (Pointers):리프 노드에 위치하며, 각 키는 해당 데이터 레코드를 가리키는 포인터를 가지고 있다. 이 포인터를 사용하여 실제 데이터에 빠르게 액세스할 수 있다.

B-트리 인덱스는 데이터베이스에서 주로 사용되지만, 다른 인덱스 구조도 있으며 데이터베이스 시스템에 따라 다양한 최적화가 적용될 수 있다.