实现一个简单的Database3(译文)


前文回顾

  • 实现一个简单的Database1(译文)
  • 实现一个简单的Database2(译文)

实现一个简单的Database3(译文)

译注:cstsck在github维护了一个简单的、类似sqlite的数据库实现,通过这个简单的项目,可以很好的理解数据库是如何运行的。本文是第三篇,主要是实现数据库的实现内存中的数据结构并存储数据

Part 3 在内存中,只追加的单表数据库

我们从一个小型的,有许多限制的数据库开始。现在数据库将:

  • 支持两个操作:插入一行并打印所有行
  • 数据驻留在内存中(没有持久化到磁盘)
  • 支持单个、硬编码的表

我们的硬编码表将用来存储用户数据,看起来就行下面展示的这样:

column type
id integer
username varchar(32)
email varchar(255)

这是一个简单的方案,但是它将让我们的数据库能够支持不同的数据类型和不同大小的文本数据类型。插入语句现在看起来像下面这样:

insert 1 cstack foo@bar.com