【存储工程】B-Tree 与 B+Tree:页式存储引擎的工程实现
数据库要把数据存到磁盘上,又要以尽可能少的磁盘 I/O 把数据找回来。这个矛盾催生了一系列面向磁盘的索引结构(Disk-oriented Index),其中最成功的就是 B-Tree 家族。从 1970 年 Rudolf Bayer 和 Edward McCreight 在波音科学研究实验室提出 B-Tree 起,这个…
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 3 篇文章 · 返回首页
数据库要把数据存到磁盘上,又要以尽可能少的磁盘 I/O 把数据找回来。这个矛盾催生了一系列面向磁盘的索引结构(Disk-oriented Index),其中最成功的就是 B-Tree 家族。从 1970 年 Rudolf Bayer 和 Edward McCreight 在波音科学研究实验室提出 B-Tree 起,这个…
每一个你信赖的数据库背后,都站着一棵 B-tree。本文从磁盘物理模型出发,逐层拆解 B-tree 与 B+tree 的设计动机、节点分裂与合并的完整过程、批量加载优化、写放大计算,并深入 boltdb 源码与完整的 C 实现,最终落地到 InnoDB、PostgreSQL、SQLite 等工业级变体的工程细节。
数据库存储引擎的核心之争——原地更新还是追加写入?B+tree 与 LSM-tree 代表了两种截然不同的设计哲学,理解它们的取舍,就是理解现代存储系统设计的根基。