LSM-Tree和B-Tree 对比

LSM-Tree 与 B-tree 的存储与修改方式

特性 LSM-Tree B-tree
存储结构 MemTable(内存),SSTable(磁盘) B-tree 节点对应磁盘上的页
数据修改 顺序写入,新的数据生成新的 SSTable 文件,不直接修改旧文件 修改数据时直接在对应的页上进行修改
修改单元 顺序写入,内存中的 MemTable 或者磁盘中的 SSTable 修改操作以页为单位,页的大小通常为 4KB、8KB等
存储优化 合并操作(Compaction)减少小文件数量 节点分裂、合并,保持树的平衡
写入性能 优化写入,尤其是大量顺序写入 随机写入性能相对较差,依赖于树的高度
查询性能 由于多次磁盘查找,查询性能通常较差,依赖布隆过滤器优化 查询性能较好,依赖 B-tree 的平衡性

LSM-Tree

B-tree

总结

转载请注明出处