简述
B-tree 是数据库索引的默认数据结构。一张百万行的表,不建索引就得逐行扫;建了 B-tree 索引,查一条记录只要几次比较——树高通常不超过四层。
详解
它是一棵多路平衡树。每个节点存多个有序的键和指向子节点的指针,查找时从根往下,每层用二分缩小范围,直到叶子。所有叶子在同一深度,所以任何一条记录的查找代价都一样、可预期。数据库偏爱它是因为一个节点正好对应一个磁盘页,几次跳转就定位——磁盘 IO 是瓶颈,少跳几次就是快。
深化
mindplace 里”节点“这个词,源头就是 B-tree。当时在想文档索引该怎么组织,脑子里蹦出来的是 B-tree——它本质是”用树把查找具象化”,每个索引节点是一个能定位的实体,节点靠指针连成结构。把这套搬到知识库:每篇笔记、每个术语都是一个节点,节点之间靠 双链 连成图。索引树的”节点+指针”,就变成了知识图的”节点+边”。数据结构课本里的老东西,成了整个站的骨架。