跳到主要内容

为了让更多的人快速入门数据库内核研发,以实施tpch基准测试为入口,探索快速实现单机事务数据库内核的方法。

围绕这一目的,编写了较完整的数据库内核系统,并完成tpch基准测试得出正确结果。 本文结合代码着重介绍数据库内核具体实现方案。而对数据库一般基本原理按需介绍。 整体含两部分内容:计算引擎,存储引擎。

计算引擎围绕生成查询计划和执行查询计划,介绍了语义分析、优化器、执行器等具体实现方法。

存储引擎围绕读写数据,介绍了内存数据组织、事务MVCC、索引、checkpoint等具体实施方案。

与其他数据库内核教学方案相比,有显著的优势:

  • 单一任务。围绕tpch任务,实现内核方案。
  • 目标具体。仅支持tpch 22条query 需要的数据类型、函数、算子等
  • 选择关键算法的依据:清晰、直观、透明。不为追求极致性能,牺牲算法的易读性。
  • 准工业化。参考duckdb的工业级方案,简化实现。
  • 体系完整。涵盖计算引擎、存储引擎的经典内容。
  • 实战性强。基于本文和代码,实现属于自己的数据库。
  • 对于初级学习者。在数据库内核的完整性和需要的知识储备之间取得平衡。
  • 对于进阶学习者。以此为基础进一步研读duckdb的生产级源码设计,甚至二次开发。
  • 配套代码。 https://github.com/daviszhen/plan
  • 本文链接:快速实现数据库内核

目录

第一部分-计算引擎