ruby-DB

Ruby系列是使用Go语言重构实现数据库,操作系统,编译器等计算机最核心内容。使用简单的核心讲解方式进行编排。ruby-DB就是一个基于Golang的类sqlite数据库系统,实现了我们常用的相关功能,一共分为13讲。

Ruby-DB流程图

主要实现的内容

  • 数据以什么格式存储?(内存或是硬盘)
  • 数据什么时候从内存移动到硬盘?
  • 为什么可以只拥有一个主键在每张表?
  • 如何实现事务的回滚?
  • 索引的格式是如何实现的呢?
  • 什么时候,什么条件下会发生整张表索引呢?
  • 查询语句以什么格式存储?

第一部分 REPL的实现

使用过Mysql或者MongoDB或者使用过Shell交互式界面的同学应该了解,我们整个程序一直处于读取一串输入,返回一串结果的循环,这就是REPL(read–eval–print loop)。

linux shell界面

这就是第一部分的主要代码逻辑,使用一个for循环从命令行循环读入数据,直到输入“.exit”也就是model.Exit退出我们的数据库程序。

最终实现效果

启动程序后执行效果

这是我的github相关项目地址,欢迎来进行交流学习和


使用相关内容:

Golang Goland gitemoji git github

参考资料: