易君召
发布于 2026-08-15 / 作者:易君召 / 2 阅读
0

如何选择合适的数据库类型

核心思路:先梳理业务特征(数据模型、查询模式、并发、规模、一致性、运维成本),再匹配数据库类型,最后做选型对比

主流数据库大类:关系型 SQL、NoSQL(文档、键值、列存、图数据库)、时序、搜索引擎、向量数据库。

一、先明确 7 个核心评估维度(选型必看)

  1. 数据模型:表结构规整?嵌套复杂文档?图关系?时间序列?向量?

  2. 查询访问模式:多表 JOIN、复杂事务?还是单键查询、批量读写?多条件全文检索?

  3. 一致性与事务:是否需要 ACID 强事务?金融交易必须强一致;日志、统计可以最终一致性。

  4. 数据规模:数据量、QPS/TPS、读写比例(读多写多、写多读少)。

  5. 扩展性:单机够用?未来需要水平分片扩容?

  6. 运维成本:团队技术栈、信创要求、是否接受分布式复杂度。

  7. 特殊需求:时序分析、全文检索、AI 向量、地理信息。

二、各类数据库适用场景 & 不适合场景

1. 关系型数据库 SQL(MySQL、PostgreSQL、openGauss、Oracle、SQLServer)

结构化数据,强事务,复杂关联查询

✅适合

  • 业务系统:订单、用户、财务、ERP、后台管理;需要事务、多表 join、约束。

  • 数据结构相对稳定,经常做复杂筛选、聚合。

  • 信创场景:openGauss、PostgreSQL 生态成熟。

❌不适合

  • 海量简单 KV 读写、高吞吐日志存储;嵌套极多的非结构化文档;海量时序打点。

选型小提示:

MySQL:互联网业务,简单事务,生态广;

PostgreSQL:复杂查询、JSON、GIS、自定义类型,能力更强;

openGauss:国产信创,企业级事务。

2. 文档数据库 MongoDB

BSON 文档,类 JSON,结构灵活,弱事务

✅适合

  • 内容、用户画像、商品详情、配置信息,字段经常变动,嵌套对象多。

  • 不需要大量多表 JOIN,以文档为单元读写。

❌不适合

  • 高频跨文档事务、大量关联 join;金融强一致性业务。

3. 键值数据库(Redis)

内存为主,极高吞吐,简单 key‑value

✅适合

  • 缓存、会话、计数器、限流、排行榜、分布式锁。

❌不适合

  • 大容量持久化主存储;复杂条件查询。

4. 列存储数据库(ClickHouse、Doris、HBase)

按列存储,分析型,海量数据聚合

✅适合

  • 日志分析、埋点统计、报表、OLAP 大数据分析。

❌不适合

  • 在线业务高频单行更新、联机事务。

区分:

HBase:宽列存储,写性能极强,适合海量时序原始数据存储;

Doris/ClickHouse:OLAP 分析,快速聚合查询。

5. 图数据库(Neo4j、NebulaGraph)

节点‑边模型,处理实体关系

✅适合

  • 社交关系、知识图谱、风控链路、路径查询、血缘分析。

❌不适合

  • 普通业务表单存储;大规模简单读写。

6. 时序数据库 TDengine、InfluxDB

✅适合

  • IoT 设备打点、监控指标、传感器数据,按时间大量写入,按时间范围查询。

❌不适合

  • 业务订单、通用业务数据。

7. 搜索引擎 Elasticsearch

✅适合

  • 全文检索、模糊搜索、多维度过滤,日志检索。

❌不适合

  • 作为主库承担事务写入。

8. 向量数据库 Milvus、Chroma

✅适合

  • AI RAG,Embedding 向量相似度检索。

❌不适合

  • 普通业务表单存储。

三、快速决策对照表

业务场景

优先选择

备选

订单、交易、财务系统

MySQL / openGauss / PostgreSQL

Oracle

用户画像、商品详情,字段多变

MongoDB

PostgreSQL(JSONB)

缓存、会话、排行榜

Redis

日志埋点、大数据报表分析

Doris / ClickHouse

HBase

IoT 设备、监控指标

TDengine

InfluxDB

知识图谱、风控关系分析

NebulaGraph

Neo4j

商品搜索、全文检索

Elasticsearch

AI 向量检索 RAG

Milvus

Qdrant

四、现实项目常见架构:多数据库组合(不要试图一个库搞定一切)

绝大多数项目不是单一数据库:

示例:电商系统

  1. MySQL:订单、交易、用户核心业务;

  2. Redis:缓存、热点商品、分布式锁;

  3. Elasticsearch:商品搜索;

  4. ClickHouse:用户行为埋点、运营报表;

  5. MongoDB:商品详情、扩展属性。

五、避坑要点

  1. 不要为了新技术选型:如果业务就是简单 CRUD,优先关系库,不要盲目上 Mongo、分布式。

  2. 区分主库与辅助库:ES、Redis、向量库一般做辅助,不做核心业务主库。

  3. 分布式有成本:分片、多副本带来运维复杂度,单机扛得住就优先单机。

  4. 信创项目优先看国产数据库适配:openGauss、达梦、人大金仓。

  5. 先评估读写模型:读多写多?写多读少?是否强事务?

六、简单自问自答,快速选出数据库

  1. 需要事务、多表关联?→ 关系型数据库

  2. 字段经常变,嵌套 JSON?→ MongoDB / PG JSONB

  3. 只是缓存,追求极速?→ Redis

  4. 海量日志、做统计报表?→ Doris / ClickHouse

  5. 设备按时间不停打点?→时序库

  6. 要搜索、模糊匹配?→ ES

  7. AI 向量相似度检索?→向量库

  8. 实体之间复杂关系?→图数据库


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/database-type-selection-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/