数据库内核原理
从存储引擎总览出发,深入 B+ 树索引、LSM-Tree 与 WAL、查询优化器等数据库内核核心模块,理解数据如何被存储、索引与高效查询。
数据库是软件世界里最经得起时间考验的复杂系统之一。这个系列从存储引擎切入,自上而下地拆解一个数据库内核的关键模块:索引结构如何组织数据、日志如何保证崩溃恢复、查询优化器如何把 SQL 变成高效执行计划。
适合对数据库有基本使用经验、想进一步理解「数据库内部发生了什么」的工程师。每一篇都尽量以具体数据结构与算法为主线,避免空谈概念。
- 01深入
存储引擎总览:从 Page 到 LSM
数据库内核的起点是存储引擎。本文建立存储引擎的整体视图:Page 模型、缓冲池、索引与日志的关系,以及行存与列存的适用场景。
- 02深入
B+ 树索引:从磁盘到内存
为什么数据库索引用 B+ 树而不是二叉搜索树?本文从磁盘 I/O 的物理约束出发,推导 B+ 树的形态,并拆解节点分裂、页缓存与聚簇索引。
- 03深入
LSM-Tree 与 WAL:写放大与崩溃恢复
LSM-Tree 如何用追加写换写入吞吐?Compaction 为什么是它的阿喀琉斯之踵?WAL 又怎样保证崩溃后不丢数据?本文一次讲透。
- 04深入
查询优化器:从 AST 到执行计划
SQL 是声明式的,执行是命令式的——查询优化器负责中间的翻译。本文拆解解析、绑定、逻辑优化、物理优化四阶段,以及统计信息与代价模型的作用。