B-Tree(平衡树)

核心特性

  • 主要应用:几乎所有关系型数据库使用的索引数据结构
  • 存储单元:基本存储单元通常称为"页"
  • 工作原理:通过向下追踪键的范围直到找到实际值

优势特点

  • 读取性能优秀:实现更快的读取速度
  • 范围查询高效:支持顺序扫描
  • 事务友好:天然支持ACID事务

典型应用

  • MySQL InnoDB、PostgreSQL、Oracle、SQL Server

LSM-Tree(日志结构合并树)

核心特性

  • 主要应用:许多NoSQL数据库使用,如Cassandra、LevelDB、RocksDB
  • 数据结构:维护键值对,使用排序字符串表持久化到磁盘
  • 键排序:SSTable中的键保持排序状态

核心机制:合并

  • 合并过程:Level 0段定期合并到Level 1段
  • 目的:减少文件数量,优化存储和读取

优势特点

  • 写入性能极佳:实现快速写入
  • 高吞吐量:适合写密集型场景
  • 顺序写入:追加写入模式避免随机写

典型应用

  • Cassandra、LevelDB、RocksDB、HBase

核心差异对比

维度B-TreeLSM-Tree
主要优势读取更快写入更快
读取速度快速较慢
写入速度较慢快速
存储模式原地更新追加写后合并
设计哲学读优化写优化