发现一本不错的书籍,名叫《Build Your Own Database From Scratch》,也就是从零实现一个你自己的 SQL 数据库,书中有完整的代码演示,用 Go 语言实现。
大致看了下这本书,感觉还是非常不错的,内容主要分为了两个部分。
实现磁盘 B+ 树
第一部分实际上是去构建一个基于磁盘的 KV 存储引擎,这里是使用的磁盘 B+ 树作为数据存储和组织的方式。 针对这一部分,也是循序渐进,分为了几个不同的 part,分别涉及到 B+ Tree 的大致结构,节点的插入、删除,以及数据查询,空闲列表等。
书中有完整的代码演示和丰富的图例,帮助理解。
KV 之上的 SQL 数据库
第二部分,是在前面实现的 B+ 树 KV 存储引擎之上,去构建一个迷你的 SQL 数据库,当然支持的语法比较有限,只涉及到简单的一些 CRUD 的语法。
并且在 KV 之上支持了事务的特性,然后对数据表进行解析、存储,总体来说是一个比较完整的资料。 当然,唯一的缺点是这本书是英文的,没有中文版,但书中都是使用了一些专业性强的术语,并没有太多生僻的词句,理解起来应该不难。
这种类型的资料其实对学习来说就已经非常不错了,比一些不成系统的资料、博眼球的垃圾文章要好很多。 但是看起来可能非常的枯燥,并且没有人解答疑惑的话,也比较难以坚持下去。
这里推荐一下我的教程《从零实现 KV 存储》,从第一行代码开始,实现一个完整的 KV 存储引擎,并且兼容 Redis 数据结构和协议,有详细的视频讲解和代码演示。 课程详情可以看这里:https://w02agegxg3.feishu.cn/docx/Ktp3dBGl9oHdbOxbjUWcGdSnn3g
付费教程最大的好处是,可以和志同道合的朋友一起学习,互相监督,共同进步,并且我专门负责答疑,在学习的过程当中,有任何疑问都可以随时咨询,能够确保你能够完全学懂!
最近有很多同学,给我反馈,通过《从零实现 KV 存储》课程项目丰富了自己的简历,拿到了非常不错的 offer,在就业环境不佳的情况下,我们唯一能做的就是多学习充实自己,拉开和别人的差距!