从0开始写数据库
这个一个用代码手搓数据库的项目。通过这个项目,你可以:
- 学习数据库底层原理和计算机基础知识。提升技术深度。
- 通过实操来锻炼编程技能。
- 获得一个完整的个人项目。可以用在简历、面试中。
项目内容
项目全面实现了几个最重要的部分:
- KV 储存引擎。
- SQL 与关系型数据库。
- 索引与数据结构。
虽然范围很广,但是被拆分成了多个小步骤。每个步骤都很简单,最多几十行代码。你会发现,复杂的概念可以从简单的概念演变而来,可以说是从0开始发明数据库。
前置条件
- 学习过任意一种编程语言。
- 会使用命令行(Linux 或 Windows)。
Go 语言
- Go 语言容易上手,所以你不需要有使用经验。
- 可以用任意编程语言,因为底层原理跟编程语言无关。
- 也可以作为学习其他编程语言的练手项目。
代码模板和测试用例
每一步都是一个单独的目录。比如第一步进入 db_project/0001 目录,运行测试用例:
go test .结果是编译失败,需要你根据指导去编写里面缺失的函数。如果遇到问题:
- 可以查看测试用例。
- 可以参考
db_solution目录里作者的实现。 - 可以 email 作者:[email protected]。
其他学习底层开发的类似项目
作者网站上列举了几个类似的项目,覆盖各种底层知识: