数据库内核开发
数据库内核开发
数据库基本架构

关系数据库结构

Buffer POOL缓存机制

因为我们的数据库中的数据是放在磁盘里的,但我们每次读取都去读磁盘,显然这样效率就大寄特寄了,所以类似于cup与主存之间,我们也需要一个缓冲区来加快读写速率。
B+Tree
1.叶结点大小和存储单元大小一致,能起到预读数据效果
2.叶节点有链接关系,可以遍历
3.只有叶结点放数据

B+tree搜索过程:
比如搜索29,在磁盘块1中可以看出,29在p2所指区域
在p2区域,可以看出29小于36在p1区域
最后找到磁盘块7,搜索到29
B+树的删除过程

删除7


删除11

B+树插入过程
插入40

LSM-Tree架构

用户输入的数据会先存放在memorytable中,当memorytable中的数据达到一定阈值,memorytable就会变成一个Frozen~(只读),然后生成一个新的memorytable,把Forzen写入磁盘
Compaction

Compaction操作是将多个SSTable合成一个,能提高查询效率,但提高了能耗

Compaction三个概念:1.对写放大2.空间放大3.读放大
比较常用的策略

三种策略对比
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 驴の奇思妙想!
评论









