一个数据库是如何工作的?
- 数据是以什么格式存储的(在内存以及在磁盘)?
- 何时从内存中转移到此磁盘上?
- 为什么每张表只能有一个主键?
- 回滚一个事务是如何工作的?
- 索引是以什么格式组织的?
- 什么时候会发生全表扫描, 以及它是如何进行的?
- 准备好的语句是以什么格式保存的?
简而言之, 数据库是如何工作的?
我在从头构建一个sqlite的克隆, 用c语言实现, 以便于理解, 我也将记录此过程.
内容目录
1.介绍和配置交互式解释器环境
2.世界上最简单的SQL编译器和虚拟机
3.存储于内存中, 仅追加,单表的数据库
4.我们的首次测试用例(和bugs)
5.持久化到磁盘
6.游标抽象
7.B树的介绍
8.b树叶子节点的格式
9.二分查找及重复键
10.分裂一个叶子节点
11.递归搜索b树
12.扫描多层b树
13.分裂后更新父节点