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

相关推荐
hnjzsyjyj1 小时前
洛谷 P1339:[USACO09OCT] Heat Wave G ← Bellman-Ford 算法
数据结构·bellman-ford 算法
SelectDB技术团队2 小时前
ClickHouse 存日志的能力边界:并发、检索与 trace 回放的实测对照
数据结构·数据库·clickhouse·日志分析·apache doris·日志存储
垆边人似月.3 小时前
华为算法题:最长连续递增子序列的变
数据结构·算法·leetcode
w_zero_one3 小时前
链表(2)
java·数据结构·链表
kukubuzai3 小时前
二分查找系列一
数据结构·算法·leetcode
wzdark4 小时前
算法与数据结构教学的可视化新模式探索4
数据结构
hzxpaipai5 小时前
企业官网后台怎么设计?从产品分类、参数到资料下载的数据结构
数据结构
不会就选b13 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
Cccp.12317 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
Logic10119 小时前
C语言/数据结构位运算题解:异或XOR找出多任务下载器中的“独特下载速度“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质