<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>数据库书籍 on roseduan</title><link>https://blog.roseduan.cn/tags/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B9%A6%E7%B1%8D/</link><description>Recent content in 数据库书籍 on roseduan</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 24 May 2024 10:51:56 +0800</lastBuildDate><atom:link href="https://blog.roseduan.cn/tags/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B9%A6%E7%B1%8D/index.xml" rel="self" type="application/rss+xml"/><item><title>推荐一本手写数据库的书籍</title><link>https://blog.roseduan.cn/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E6%9C%AC%E6%89%8B%E5%86%99%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E4%B9%A6%E7%B1%8D/</link><pubDate>Fri, 24 May 2024 10:51:56 +0800</pubDate><guid>https://blog.roseduan.cn/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E6%9C%AC%E6%89%8B%E5%86%99%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E4%B9%A6%E7%B1%8D/</guid><description>&lt;p&gt;发现一本不错的书籍，名叫《Build Your Own Database From Scratch》，也就是从零实现一个你自己的 SQL 数据库，书中有完整的代码演示，用 Go 语言实现。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://pic1.zhimg.com/80/v2-2497af16116beafe402f4dda81359324_1440w.webp"
loading="lazy"
alt="img"
&gt;&lt;/p&gt;
&lt;p&gt;大致看了下这本书，感觉还是非常不错的，内容主要分为了两个部分。&lt;/p&gt;
&lt;h2 id="实现磁盘-b-树"&gt;&lt;strong&gt;实现磁盘 B+ 树&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;第一部分实际上是去构建一个基于磁盘的 KV 存储引擎，这里是使用的磁盘 B+ 树作为数据存储和组织的方式。
针对这一部分，也是循序渐进，分为了几个不同的 part，分别涉及到 B+ Tree 的大致结构，节点的插入、删除，以及数据查询，空闲列表等。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://pic4.zhimg.com/80/v2-b3b8944beeaab0c604dd9828db4ce0df_1440w.webp"
loading="lazy"
alt="img"
&gt;&lt;/p&gt;
&lt;p&gt;书中有完整的代码演示和丰富的图例，帮助理解。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://pic3.zhimg.com/80/v2-1da4af54bb175342dd5cd47efb97a726_1440w.webp"
loading="lazy"
alt="img"
&gt;&lt;/p&gt;
&lt;h2 id="kv-之上的-sql-数据库"&gt;&lt;strong&gt;KV 之上的 SQL 数据库&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;第二部分，是在前面实现的 B+ 树 KV 存储引擎之上，去构建一个迷你的 SQL 数据库，当然支持的语法比较有限，只涉及到简单的一些 CRUD 的语法。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://pic2.zhimg.com/80/v2-1a10ed2c2cca77648af51a0721c900d5_1440w.webp"
loading="lazy"
alt="img"
&gt;&lt;/p&gt;
&lt;p&gt;并且在 KV 之上支持了事务的特性，然后对数据表进行解析、存储，总体来说是一个比较完整的资料。
当然，唯一的缺点是这本书是英文的，没有中文版，但书中都是使用了一些专业性强的术语，并没有太多生僻的词句，理解起来应该不难。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;这种类型的资料其实对学习来说就已经非常不错了，比一些不成系统的资料、博眼球的垃圾文章要好很多。
但是看起来可能非常的枯燥，并且没有人解答疑惑的话，也比较难以坚持下去。&lt;/p&gt;
&lt;p&gt;这里推荐一下我的教程《从零实现 KV 存储》，从第一行代码开始，实现一个完整的 KV 存储引擎，并且兼容 Redis 数据结构和协议，有详细的视频讲解和代码演示。
课程详情可以看这里：&lt;strong&gt;&lt;a class="link" href="https://w02agegxg3.feishu.cn/docx/Ktp3dBGl9oHdbOxbjUWcGdSnn3g" target="_blank" rel="noopener"
&gt;https://w02agegxg3.feishu.cn/docx/Ktp3dBGl9oHdbOxbjUWcGdSnn3g&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;付费教程最大的好处是，可以和志同道合的朋友一起学习，互相监督，共同进步，并且我专门负责答疑，在学习的过程当中，有任何疑问都可以随时咨询，能够确保你能够完全学懂！&lt;/p&gt;
&lt;p&gt;最近有很多同学，给我反馈，通过《从零实现 KV 存储》课程项目丰富了自己的简历，拿到了非常不错的 offer，在就业环境不佳的情况下，我们唯一能做的就是多学习充实自己，拉开和别人的差距！&lt;/p&gt;</description></item></channel></rss>