为了让更多的人快速入门数据库内核研发,以实施tpch基准测试为入口,探索快速实现单机事务数据库内核的方法。
围绕这一目的,编写了较完整的数据库内核系统,并完成tpch基准测试得出正确结果。 本文结合代码着重介绍数据库内核具体实现方案。而对数据库一般基本原理按需介绍。 整体含两部分内容:计算引擎,存储引擎。
计算引擎围绕生成查询计划和执行查询计划,介绍了语义分析、优化器、执行器等具体实现方法。
存储引擎围绕读写数据,介绍了内存数据组织、事务MVCC、索引、checkpoint等具体实施方案。
与其他数据库内核教学方案相比,有显著的优势:
- 单一任务。围绕tpch任务,实现内核方案。
- 目标具体。仅支持tpch 22条query 需要的数据类型、函数、算子等
- 选择关键算法的依据:清晰、直观、透明。不为追求极致性能,牺牲算法的易读性。
- 准工业化。参考duckdb的工业级方案,简化实现。
- 体系完整。涵盖计算引擎、存储引擎的经典内容。
- 实战性强。基于本文和代码,实现属于自己的数据库。
- 对于初级学习者。在数据库内核的完整性和需要的知识储备之间取得平衡。
- 对于进阶学习者。以此为基础进一步研读duckdb的生产级源码设计,甚至二次开发。
- 配套代码。 https://github.com/daviszhen/plan
- 本文链接:快速实现数据库内核
目录
第一部分-计算引擎