首页/数据/NoSQL 速查/写路径差异:LSM 与 B 树
选型与架构50 条

写路径差异:LSM 与 B 树

存储引擎决定读写放大特征:LSM 类结构(写缓冲 + 不可变文件 + 后台合并)适合高吞吐写入,B 树原地更新适合点查与事务;很多系统是混合设计。

NoSQL 速查数据更新于 2026-10-12

引擎对照

引擎写入路径读取特征代表
B 树原地页更新 + 日志点查稳定、范围扫描友好WiredTiger、InnoDB
LSM/分段追加写 + 后台合并写吞吐高、读需合并多文件Lucene 段、MergeTree part
混合内存表 + 持久化文件写快、重建与恢复需关注Redis AOF/RDB、内存数据库

示例

示例
写入吞吐优先:日志与事件流 → Lucene 段 / MergeTree part 追加写
点查更新优先:账户余额与状态 → B 树 + 事务
同一系统也可以分层:ES 存储 + 缓存、CH part + 内存表
理解引擎模型后,很多"调优"变成常识:避免小批写入、控制合并压力、给查询留出可裁剪的结构。

易错点

  • 用 LSM 类系统承载高频单行更新语义,需要接受合并与空间放大
  • 小批量高频写入是分段类引擎的常见杀手,攒批是最有效的优化

数据来源与参考

  • ClickHouse Docs: MergeTree
  • MongoDB Manual: WiredTiger storage engine
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌