复制代码

图灵术-数据库索引优化学术

1 背景

  • 对于数据库 使用索引 性能存在问题,所以 学术界开启了一波屠龙术

2 优化点

2.1 blinnk_tree

使用非叶子结点 向右链接数据

  • 问题 : smo 锁住整棵树

2.2 bw-tree

  • 微软 document db 和 azure cosmos db

主要为了实现 arss 自动记录
使用 page id -> page value 做成一个map ,
page 使用 page base + page mod 作为记录链表 对于 btree 的分裂吧操作变成原子操作
把传统的checkpoint 刷page. 通过 log struct storage 进行刷盘 把随机写变成顺序写

2.3 masstre

分层 b+数
每一层 分 8整数个 tree 相当于 log8 log2 N

2.4 LSM-Tree 数据库

  • leveldb rocksdb

使用 wal 先写日志 ,先写log 然后内存维护 一个 memtable 刚开始可以变 ,然后达到一定大小 就变成了 不可变 table ,然后 转换到 l1 进行 minor compation , 然后 l1 满了 转换到 l2 l2 有序 major compation
注意 l2 以下的合并直接 使用 merge sort 和

  • 读取过程

读取 每层的 level
写入牛逼 读取垃圾 , compation 时候会使系统性能断崖式下跌

posted @ 2021-06-25 18:10  pg633  阅读(52)  评论(0编辑  收藏  举报