Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 인덱스
- DBMS
- github
- docker
- git
- Javascript
- 독서
- 오블완
- java
- pandas
- 책
- 넥사크로
- 리눅스
- 티스토리챌린지
- mysql
- springboot
- IntelliJ
- PostgreSQL
- 네트워크
- SQL
- spring
- 인터페이스
- 후기
- Python
- 명령어
- 책추천
- mssql
- Linux
- oracle
- MariaDB
Archives
- Today
- Total
hanker
[DATABASE] B-Tree 인덱스란? 본문
반응형
데이터베이스에서 사용되는 균형 트리 구조 중 B-Tree 인덱스에 대해서 알아보자.
1. B-tree 인덱스
1-1. B‑Tree 인덱스란?
B-Tree(Balanced Tree)는 모든 노드(내부 노드, 리프 노드)에 실제 데이터를 저장하는 균형 트리 구조이다.
2. B-tree 인덱스의 구조
- 노드 구성
- 각 노드는 키-데이터 쌍들과 자식 포인터들로 구성된다.
- 차수가 m인 B-Tree에서 각 노드는 최대 m-1개의 키-데이터 쌍을 가질 수 있다.
- 분할과 병합
- 노드가 가득 차면 중간 키를 부모로 올리고 노드를 분할한다.
- 반대로 노드가 너무 비면 형제 노드와 병합한다.
- 데이터 접근 방식
- 내부 노드에서도 데이터를 직접 찾을 수 있어, 검색 시 리프 노드까지 내려가지 않아도 되는 경우가 있다.
- 위 그림과 같이 값 70을 찾는 경우 루트 노드에서 바로 찾을 수 있다.
3. 특징
- 데이터 분산 저장: 내부 노드와 리프 노드 모두에 실제 데이터(또는 데이터 포인터)가 저장된다.
- 가변 검색 경로: 찾는 데이터가 내부 노드에 있으면 리프까지 내려가지 않고 바로 반환할 수 있어 검색 경로가 다양하다.
- 균형성: 모든 리프 노드가 동일한 레벨에 위치하여 최악의 경우에도 O(log n) 성능을 보장한다.
- 다중 분기: 각 노드가 여러 개의 키와 자식을 가질 수 있어 트리의 높이를 낮게 유지한다.
반응형
'DATABASE' 카테고리의 다른 글
[SQL] COALESCE (Null 값 처리 함수) (5) | 2025.06.18 |
---|---|
[DATABASE] ALTER 명령어 (테이블 컬럼 추가, 삭제) (3) | 2025.06.17 |
[DATABASE] LPAD, RPAD 함수 (문자열 양쪽에 특정 문자열 채우기) (4) | 2025.06.16 |
[DATABASE] DDL, DML, DCL 에 대해 (0) | 2025.04.28 |