数据库内核开发
数据库内核开发
数据库基本架构
关系数据库结构
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 许可协议。转载请注明来自 驴の奇思妙想!
评论