类别对照
| 类别 | 数据模型 | 代表产品 | 典型场景 |
|---|---|---|---|
| 文档库 | JSON/BSON 文档 | MongoDB | 内容、订单、用户档案等半结构化数据 |
| 键值库 | key → value | Redis、Memcached | 缓存、会话、计数器 |
| 宽列库 | 行键 + 列族 | HBase、Cassandra | 超大规模写入、稀疏列 |
| 搜索引擎 | 倒排索引 + 文档 | Elasticsearch | 全文检索、日志分析 |
| 列式分析库 | 列式存储 + SQL | ClickHouse、Doris | OLAP 聚合、报表 |
| 时序库 | 时间戳 + 标签 | 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大多数业务系统是组合方案:关系库做交易主存储,搜索库做检索,列式库做分析;先画数据流再定组件。