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-Tree | LSM-Tree |
|---|---|---|
| 主要优势 | 读取更快 | 写入更快 |
| 读取速度 | 快速 | 较慢 |
| 写入速度 | 较慢 | 快速 |
| 存储模式 | 原地更新 | 追加写后合并 |
| 设计哲学 | 读优化 | 写优化 |