自己动手写SQL执行引擎

作者: admin 分类: 公众号存档            2 次浏览 发布时间: 2020-10-19 23:57

【转载声明】本文为转载文章,原作者「alchemystarlzy」,版权归原作者所有。 原文链接:https://mp.weixin.qq.com/s/eylZbpLYBMyaIvDtDVal5w

公众号:杨建荣的学习笔记 · 作者:alchemystarlzy · 发布:2020-10-19 23:57:34 · 原文链接

自己动手写SQL执行引擎

前言

在阅读了大量关于数据库的资料后,笔者情不自禁产生了一个造数据库轮子的想法。来验证一下自己对于数据库底层原理的掌握是否牢靠。在笔者的github中给这个database起名为Freedom。

整体结构

既然造轮子,那当然得从前端的网络协议交互到后端的文件存储全部给撸一遍。下面是Freedom实现的整体结构,里面包含了实现的大致模块:

最终存储结构当然是使用经典的B+树结构。当然在B+树和文件系统block块之间的转换则通过Buffer(Page) Manager来进行。当然了,为了完成事务,还必须要用WAL协议,其通过Log Manager来操作。
Freedom采用的是索引组织表,通过DruidSQL Parse来将sql翻译为对应的索引操作符进而进行对应的语义操作。

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注