暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

主流数据库存储引擎算法对比

IT那活儿 2025-06-30
103
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

  
国内数据库存储引擎算法的发展呈现三大核心趋势:‌
云原生架构深度整合‌、‌国产化替代加速‌与‌多模态能力融合‌。
云原生技术通过容器化部署和存算分离实现弹性扩展,结合分布式存储引擎优化资源利用率,支撑金融、政务等场景的千万级并发需求‌;国产厂商持续突破传统算法瓶颈,如达梦、OceanBase等基于B+Tree与LSM-Tree的混合架构,在TPC-C测试中实现性能翻倍,并借助智能压缩技术降低60%存储成本‌。
多模态数据处理需求驱动‌混合存储引擎‌普及,头部厂商在关系型引擎中集成向量检索和图遍历模块,支持非结构化数据的跨模态联合分析,例如Doris通过倒排索引与列存结合替代Elasticsearch部分功能‌。
AI与存储引擎的协同创新成为新方向,向量数据库虽独立市场规模有限,但作为大模型基础设施的价值凸显,华为GaussDB等产品通过向量检索优化AI推理效率‌。未来技术将更注重‌软硬协同‌,通过DPU卸载索引构建等计算密集型任务,结合RDMA网络加速数据访问,形成性能突破点‌。

以下是几种常见的数据库存储引擎中,数据存储算法结构的对比及其特点描述。




lsm-tree(日志结构合并树)

1.1 核心设计
通过内存排序(MemTable)和分层合并(Compaction)将随机写入转换为顺序追加写,减少磁盘寻址开销
1.2 特点
  • 优势
    高写入吞吐、适合批量插入场景、压缩后存储效率高
  • 劣势
    读取需多层查询(内存+磁盘)、合并(Compaction)引发写放大、实时读延迟较高
1.3 典型应用
HBase、RocksDB、Cassandra


B-Tree/B+Tree(多路平衡查找树)

2.1 核心设计
基于多路平衡树组织数据,节点按有序方式存储,支持快速范围查询
2.2 特点
  • 优势
    读性能优异(O(log n))、支持事务和行级锁、适合频繁随机读写
  • 劣势
    写入时需频繁调整树结构(页分裂/合并)、随机写入性能低于 LSM-Tree
2.3 典型应用
MySQL InnoDB、Oracle、MongoDB


Hash 结构

3.1 核心设计
通过哈希函数直接定位数据位置,仅支持等值查询(如 key=value)
3.2 特点
  • 优势‌
    单点查询效率极高(O(1) 时间复杂度)‌。
  • 劣势
    不支持范围查询、哈希冲突需额外处理、内存占用高
3.3 典型应用
Redis、Memcached


列式存储(Column-Store)

4.1 核心设计
按列而非行存储数据,同一列数据连续存储,便于批量聚合计算
4.2 特点
  • 优势‌
    高压缩率(同列数据类型一致)、分析型查询效率高‌。
  • 劣势
    随机写入效率低、事务支持弱
4.3 典型应用
ClickHouse、HBase(部分场景)


内存存储

5.1 核心设计
数据完全存储在内存中,通过哈希表或有序结构(如跳表)管理
5.2 特点
  • 优势
    读写延迟极低(微秒级)、适合高并发临时数据存储
  • 劣势
    数据非持久化、容量受内存限制
5.3 典型应用
Redis、MySQL Memory 引擎


堆组织表(Heap-Organized Table)

6.1 核心设计
数据无序存储,依赖额外索引(如 B+Tree)定位记录
6.2 特点
  • 优势
    插入速度快(无排序开销)
  • 劣势
    范围查询效率低、需索引回表查询
6.3 典型应用
PostgreSQL Heap 表


设计差异

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

END


本文作者:刘传龙(上海新炬中北团队)

本文来源:“IT那活儿”公众号

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

评论