

以下是几种常见的数据库存储引擎中,数据存储算法结构的对比及其特点描述。
lsm-tree(日志结构合并树)
优势 高写入吞吐、适合批量插入场景、压缩后存储效率高。 劣势 读取需多层查询(内存+磁盘)、合并(Compaction)引发写放大、实时读延迟较高。
B-Tree/B+Tree(多路平衡查找树)
优势 读性能优异(O(log n))、支持事务和行级锁、适合频繁随机读写。 劣势 写入时需频繁调整树结构(页分裂/合并)、随机写入性能低于 LSM-Tree。
Hash 结构
优势 单点查询效率极高(O(1) 时间复杂度)。
劣势 不支持范围查询、哈希冲突需额外处理、内存占用高。
列式存储(Column-Store)
优势 高压缩率(同列数据类型一致)、分析型查询效率高。
劣势 随机写入效率低、事务支持弱。
内存存储
优势 读写延迟极低(微秒级)、适合高并发临时数据存储。 劣势 数据非持久化、容量受内存限制。
堆组织表(Heap-Organized Table)
优势 插入速度快(无排序开销)。 劣势 范围查询效率低、需索引回表查询。

设计差异
LSM-Tree 以顺序写入优化写入性能,牺牲实时读效率; B+Tree 优先保障读性能,写入因树结构调整产生额外开销。
Hash 专注单点查询,列式存储面向批量分析,两者分别满足 OLTP 和 OLAP 需求。
内存存储以空间换时间,适用于低延迟场景; LSM-Tree/B+Tree 等磁盘存储通过缓存机制平衡持久化与性能。

本文作者:刘传龙(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




