存储引擎
数据库选型时,你是否有过这样的经历:团队选了 InnoDB 存储日志数据,结果磁盘空间暴涨、写入性能反而不如预期;或者选了 RocksDB 做范围查询,结果线上查询延迟飙到秒级。
表面上这是「数据库没选对」,但根本原因往往是对存储引擎原理缺乏理解。不同的存储引擎,本质上是对不同读写模式的优化——读多写少 vs 写多读少、范围查询 vs 点查询、单机 vs 分布式。没有一种引擎能通吃所有场景,选择的本质是 trade-off。
存储引擎是数据库性能的地基。地基不稳,上层建筑再华丽也撑不住。
本模块聚焦存储引擎的核心知识点,从 B+ Tree 与 LSM Tree 两大范式出发,深入讲解数据组织、读写优化、持久化机制,并系统对比主流存储引擎的架构设计与适用场景。
模块结构
本模块按主题分为 6 个子模块:
两大存储范式对比
LSM Tree 写入路径
存储引擎高级特性
现代存储引擎不仅提供基础的数据读写,还包含多种高级特性以应对不同场景:
- 索引结构:除了主键索引,还有位图索引(适合低基数列)、倒排索引(适合全文搜索)
- 存储格式:行式存储(OLTP 友好)vs 列式存储(OLAP 高效)
- Bloom Filter:快速判断 Key 是否存在于 SSTable,减少无效 I/O
- Compaction 策略:Level-Tiered(空间友好)vs Size-Tiered(写入友好)
主流存储引擎
常见认知误区
学习路径建议
本章导读
根据你的学习目标,推荐以下阅读顺序:
- 想理解原理:B+ Tree 原理详解 → LSM Tree 原理详解
- 想动手实践:WAL 机制 → SSTable 与 MemTable
- 想选型落地:存储引擎选型指南 → InnoDB 架构解析
- 想深入优化:Compaction 策略 → Bloom Filter 应用
准备好开始了吗?让我们从存储引擎的基础概念开始。