LSM树与B+树优缺点分析

  1. LSM树优化了顺序写,因此写性能很好,但在查询上: 需要从Level 0到Level n一直顺序查下去。极端情况是LSM树中不存在该数据,则需要遍历L0->Ln,最后返回空集。

解决方法是用布隆过滤器优化查询。

  1. B+树范围查询性能很好,缺点包括:

  2. 随机写的性能差‌:B+树每次插入或更新操作可能需要访问不同的叶子节点,导致每次写操作都需要随机读写。

  3. 更新操作的代价高‌:每次更新操作都需要修改索引树,可能会触发写锁,阻塞数据查询操作,尤其是在并发写的情况下,性能会更差‌。

  4. 占用空间大‌:B+树索引结构会占用较多的存储空间,尤其是在数据库增大时,这种占用会更加显著‌

以下几种情况可能表现不佳:

  1. 高并发下的分裂合并 2.更新 3.树比较深的时候 4. 数据分布不均匀:可能会导致某些分支的节点过于密集,而其他分支则比较稀疏。

总结:B+树读快写慢, LSM树写快读慢(所以HBase用布隆过滤器弥补读问题),两者适用场景互补。

参考: https://zhuanlan.zhihu.com/p/415799237

相关推荐
小马学嵌入式~8 小时前
数据结构:队列 二叉树
c语言·开发语言·数据结构·算法
省四收割者10 小时前
Go语言入门(10)-数组
数据结构·经验分享·笔记·vscode·算法·golang
月盈缺12 小时前
学习嵌入式的第二十四天——数据结构——队列和树
数据结构·学习
Y40900116 小时前
Java算法之排序
java·数据结构·笔记·算法
艾莉丝努力练剑18 小时前
【C语言16天强化训练】从基础入门到进阶:Day 6
c语言·数据结构·学习·算法
快去睡觉~19 小时前
力扣1005:k次取反后最大化的数组和
数据结构·算法·leetcode
想不明白的过度思考者19 小时前
初识数据结构——Map和Set:哈希表与二叉搜索树的魔法对决
数据结构·散列表
天意生信云19 小时前
生信分析自学攻略 | R语言数据筛选和修改
数据结构·经验分享·r语言
月盈缺19 小时前
学习嵌入式第二十三天——数据结构——栈
数据结构·学习
fs哆哆1 天前
在VB.net中一维数组,与VBA有什么区别
java·开发语言·数据结构·算法·.net