28 lines
1.7 KiB
Markdown
28 lines
1.7 KiB
Markdown
---
|
|
id: P-REINFORCE-AI-B-TREE
|
|
category: "10_Wiki/💡 Topics/Programming & Language"
|
|
confidence_score: 0.99
|
|
tags: [B-Tree, Data Structure, DB, Indexing]
|
|
last_reinforced: 2026-04-20
|
|
---
|
|
|
|
# [[B-Tree|B-Tree]] (B-트리)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "디스크의 느린 속도를 이겨내는 최적의 균형." 한 노드에 여러 데이터를 담고 층수를 낮게 유지하여, 수백만 건의 데이터도 단 3~4번의 읽기만으로 찾아내는 인덱스의 제왕이다.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
- **Multi-way Search Tree**:
|
|
- 이진 트리(2-way)와 달리 노드 하나가 수십~수백 개의 자식을 가질 수 있다. 이를 통해 트리의 높이(Height)를 극적으로 낮춘다.
|
|
- **Self-Balancing**:
|
|
- 데이터가 추가되거나 삭제될 때마다 스스로 노드를 분할(Split)하거나 합치며(Merge) 높이 균형을 유지한다. 언제나 탐색 속도가 보장된다.
|
|
- **Disk I/O Efficiency**:
|
|
- 노드 한 개의 크기를 하드디스크의 한 블록(Page) 크기에 맞춰 설계하여, 한 번의 스핀으로 최대한 많은 정보를 읽어오게 한다.
|
|
|
|
## ⚠️ 모순 및 업데이트 (RL Update)
|
|
- 현대의 SSD 환경에서는 랜덤 액세스 속도가 빨라져서 B-Tree 계열 외에도 LSM-Tree(NoSQL 등에서 사용) 같은 다양한 변종이 사용된다. 하지만 여전히 관계형 DB(MySQL, PostgreSQL)의 기본 인덱스는 B+Tree(B-Tree의 계층형 변형)가 압도적 표준이다.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- Related: [[Distributed-Systems-Engineering|Distributed-Systems-Engineering]] , [[Combinatorial-Optimization|Combinatorial-Optimization]]
|
|
- Foundation: Computational Thinking
|