1.6 KiB
1.6 KiB
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-트리)
📌 한 줄 통찰 (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 , Combinatorial-Optimization
- Foundation: Computational Thinking