四类主流数据库核心对比表

(按 数据模型 分类,记忆口诀:关系表结构,键值键对值,列存列分区,文档文档树

对比维度关系型数据库(RDBMS)键值(Key-Value)数据库列存储数据库(Column-Family)文档数据库(Document Database)
核心数据模型二维表结构(行 + 列),遵循 ACID,支持 SQL键值对(Key-Value Pair),Key 唯一,Value 为二进制 / 字符串列族结构(Table→Column Family→Column→Row),按列分区存储文档模型(JSON/BSON/XML),文档为基本单位,支持嵌套结构
存储结构特点按行存储,适合整行读写哈希表 / 有序索引存储,Key 为索引,Value 无结构按列存储,同一列数据物理相邻,适合列聚合查询文档内按键值存储,支持索引,文档间无固定 schema
查询能力强,支持复杂 SQL 查询(联表、分组、聚合)弱,仅支持按 Key 查询,不支持复杂条件过滤中,支持列级聚合查询,部分支持 SQL-like 语法中强,支持文档内字段查询、索引,部分支持联表和复杂查询
事务支持强,完全支持 ACID 特性弱,多数仅支持单 Key 事务,部分支持分布式事务中,部分支持行级事务,分布式事务支持有限中,部分支持文档级事务,分布式事务支持有限
Schema(模式)强 Schema,表结构固定,需提前定义无 Schema,Value 结构完全灵活弱 Schema,列族结构固定,列可动态添加动态 Schema,文档结构灵活,无需提前定义
核心优势数据一致性强,查询灵活,适合复杂业务逻辑读写性能极高,延迟低,易于水平扩展列聚合查询性能优异,适合大数据分析、统计文档结构灵活,适合半结构化数据,开发效率高
核心劣势水平扩展困难,高并发下性能瓶颈明显查询能力有限,不支持复杂条件查询行级读写性能较差,不适合高频事务操作联表查询性能弱,复杂事务支持不足
典型产品MySQL、Oracle、PostgreSQL、SQL ServerRedis、Memcached、Amazon DynamoDBHBase、Cassandra、ClickHouseMongoDB、CouchDB、Elasticsearch(文档存储特性)
软考高频应用场景传统业务系统(电商订单、金融交易)、需要强一致性的场景缓存系统、会话存储、高频读写的简单数据存储大数据分析、日志存储、时序数据统计(如用户行为分析)内容管理系统(CMS)、电商商品信息、移动应用后台

1. 四大数据库与 CAP 定理的适配

  • 关系型数据库:优先保证一致性(C) 和可用性(A),适合 CP 场景(如金融交易)。
  • 键值 / 列存储 / 文档数据库:多为 NoSQL 数据库,优先保证可用性(A) 和分区容错性(P),适合 AP 场景(如互联网高并发业务);部分列存储 / 文档数据库可通过配置支持 CP 场景。

2. 易混概念区分

  • 列存储数据库 vs 关系型数据库:关系型按行存储,适合整行读写(如订单查询);列存储按列存储,适合多行列聚合(如统计所有用户的消费总额)。
  • 文档数据库 vs 键值数据库:键值数据库的 Value 无结构,仅能按 Key 查询;文档数据库的 Value 是结构化文档(如 JSON),可按文档内字段查询和索引。

3. 分布式支持能力

  • 关系型数据库:分布式支持较弱,需通过分库分表中间件(如 Sharding-JDBC)实现水平扩展。
  • NoSQL 数据库(键值 / 列存储 / 文档):天生支持分布式,可通过增加节点实现水平扩展,适合海量数据和高并发场景。

特点

  1. 关系型:表结构,强事务,SQL 查询强,一致优先保。
  2. 键值型:键对值,读写快,查询仅靠 Key,缓存最常用。
  3. 列存储:按列存,聚合快,大数据分析,统计显优势。
  4. 文档型:JSON 树,Schema 活,半结构化数据,开发效率高。