首页/数据/NoSQL 速查/NoSQL 数据库分类与代表产品
选型与架构50 条

NoSQL 数据库分类与代表产品

NoSQL 按数据模型与访问模式分为文档、键值、宽列、搜索、时序、图等类别,各自解决的问题不同;选型从查询模式与一致性要求倒推,而不是先挑产品。

NoSQL 速查数据更新于 2026-10-13

NoSQL 的分类逻辑

NoSQL 不是一个产品类别,而是按数据模型与访问模式分出的若干族:文档、键值、宽列、搜索、列式分析、时序、图。它们的取舍点各不相同,选型的正确顺序是先写清查询模式、数据规模与一致性要求,再倒推该用哪一族,而不是先挑热门产品再想办法塞需求。

基本信息

分类主线数据模型 + 访问模式
一致性口径强一致 / 最终一致 / 可调一致性
事务能力单文档事务、多行事务、跨分片事务差异很大
落地建议关系库能扛住就先别加组件,确有瓶颈再引入
兜底做法组合方案:交易主存储 + 检索副本 + 分析副本

选型的判断顺序

  • 先列核心查询:点查、范围扫描、全文检索、聚合分析、关系遍历,各自什么形态
  • 再定数据量与写入速率:每天写多少、保留多久、冷热是否分层
  • 然后定一致性:能否接受最终一致,是否需要跨行事务与读己之写
  • 接着算运维成本:集群、副本、备份、升级需要多少人力和机器
  • 最后才是对照类别选产品,并用真实规模的数据做一次压测

类别对照

类别数据模型代表产品典型场景
文档库JSON/BSON 文档MongoDB内容、订单、用户档案等半结构化数据
键值库key → valueRedis、Memcached缓存、会话、计数器
宽列库行键 + 列族HBase、Cassandra超大规模写入、稀疏列
搜索引擎倒排索引 + 文档Elasticsearch全文检索、日志分析
列式分析库列式存储 + SQLClickHouse、DorisOLAP 聚合、报表
时序库时间戳 + 标签InfluxDB、Prometheus监控指标、IoT 采集
图数据库顶点 + 边Neo4j 等关系网络、路径查询

同一需求的多库示例

同一需求的多库示例
查询某个用户最近 10 条订单:
- MongoDB: db.orders.find({ userId: 7 }).sort({ ts: -1 }).limit(10)
- Elasticsearch: GET /orders/_search {"size": 10, "query": {"term": {"userId": 7}}, "sort": [{"ts": "desc"}]}
- ClickHouse: SELECT * FROM orders WHERE userId = 7 ORDER BY ts DESC LIMIT 10
- Redis: ZREVRANGE orders:7 0 9

同一条需求四种写法都能实现,差别在于:能否按任意条件过滤、
是否支持更新、写入延迟、聚合能力与运维成本——这些才是选型依据。

常见误配

误配问题更合适的选择
拿搜索库当唯一主存储事务与更新一致性弱,写入成本高关系库/文档库做主存,搜索库做检索副本
用时序库跑业务订单查询标签模型不支持任意条件过滤与大范围更新列式分析库或关系库
用键值库存复杂对象只能按键取,按值查询做不了文档库
用宽列库做实时聚合报表聚合能力弱,需要应用层拼列式分析库
用文档库扛全文检索分词与相关度调优能力有限搜索引擎
大多数业务系统是组合方案:关系库做交易主存储,搜索库做检索,列式库做分析,键值库做缓存;先画清数据流与一致性边界,再定组件清单。
「支持 SQL」不等于同类能力:不同库的 SQL 方言、事务范围与一致性语义差别很大,别把能跑 SELECT 当成可以直接迁移。
引入一个分布式存储意味着长期承担集群、副本、备份与升级的运维成本;如果一个关系库加索引就能满足,多引入的组件通常只会增加故障面。

易错点

  • 按产品热度选型而忽略查询模式,落地后才发现核心查询走不动索引
  • 把「支持 SQL」当成同类能力:不同库的 SQL 方言、事务与一致性语义差异很大
  • 用最终一致的存储承载读己之写的业务(下单后立刻查订单查不到)→ 关键链路单独校验或改用强一致主存
  • 只看功能不看运维成本,自建集群的副本与备份投入远超立项时的预估
  • 用小数据集做压测就下结论,数据量上来后索引结构、合并行为与内存占用完全不同

数据来源与参考

  • MongoDB Manual: Introduction
  • Elasticsearch Guide: What is Elasticsearch
  • ClickHouse Docs: Overview
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌