1789 字
9 分钟
主流数据库到底怎么选?一文讲透性能、瓶颈与适用场景

主流数据库到底怎么选?一文讲透性能、瓶颈与适用场景#

“数据库选哪个”大概是后端面试被问最多次、也最没有标准答案的问题。因为根本不存在’最好的数据库’,只有’最合适当前业务场景的那一个’。这篇把全球最主流的几款数据库逐个讲透——性能表现、功能强项、核心瓶颈——最后给你一张选型表,让你能自己判断。

关系型:PostgreSQL 和 MySQL#

PostgreSQL —— 功能最全的全能选手 定位是”最像编程语言的关系库”。功能碾压级的全面:ACID 事务、JSONB(原生存半结构化数据)、全文检索、PostGIS 地理分析、数组/枚举/范围类型、物化视图,还能装 pgvector 搞向量检索。

  • 性能:单机读写稳定,复杂查询优化器强,适合业务逻辑复杂、表关系多的系统
  • 瓶颈:单机写入并发再高也是有上限的,要做读写分离和 Sharding(相对繁琐);默认配置偏保守,不调优跑不满硬件
  • 一句话:能文能武,中小型系统的”万能答案”

MySQL —— Web 世界的老牌王者 20 多年一直是最流行的 Web 数据库,开发者和运维人才最多,踩坑资料最多。InnoDB 事务、主从复制成熟。

  • 性能:简单查询极快,团队调优经验足
  • 瓶颈:复杂 SQL 和大数据量分析吃力;JSON 等扩展能力弱于 Postgres;分区、半结构化支持有限
  • 一句话:求稳、求熟悉、团队都是 MySQL 老手,选它不算错

NoSQL 与分布式#

MongoDB —— 文档模型的灵活派 用文档(JSON 类结构)存数据,schema 可以随便加字段,不用预先设计表结构。内置分片和副本集,横向扩展天然(这是它和关系库最大的区别)。

  • 性能:海量数据、高写入场景表现好,字段需经常变的业务最省心
  • 瓶颈:多文档事务成本高、JOIN 能力弱($lookup 有限)、内存占用大(热数据要进内存)、强一致性场景要小心
  • 一句话:数据模型变化快、要横向扩展、不想被表结构绑死,选它

Redis —— 内存里的极速缓存 本质是内存 KV 存储,读写微秒级,清单里最快的存在。数据结构丰富:字符串、哈希、列表、集合、有序集合,支持分布式锁、发布订阅、Lua 脚本。

  • 性能:毫无疑问的王者,扛亿级 QPS 的缓存层几乎都靠它
  • 瓶颈:内存就是成本,数据放不下内存就歇菜;持久化(RDB/AOF)有阻塞风险;单线程模型下长命令要注意(新版本已做多线程 IO)
  • 一句话:它是”缓存层”不是”存储层”,别把重要数据全赌在它身上

Elasticsearch —— 全文搜索与分析 基于 Lucene 的倒排索引,专为”搜得快”而生。全文搜索、模糊匹配、多字段聚合分析是它的看家本领。

  • 性能:大规模全文检索和聚合,几亿文档也能秒出
  • 瓶颈:不适合当主数据库——它是近实时(写入后有一小段延迟才可见)、不保证强一致;堆内存和 GC 配置敏感,磁盘占用大(副本+段合并);运维复杂
  • 一句话:搜索、日志分析、推荐这种场景它无敌,但别把它当”能存就行”的库

ClickHouse —— 列式查询的 OLAP 核弹 列式存储 + 向量化执行,专门为”对海量数据做聚合分析”而生。几十亿行按天做报表、漏斗分析,秒级出结果。

  • 性能:OLAP 场景下性能甩传统行存数据库几条街
  • 瓶颈:频繁单行插入/更新是它的死穴(适合批量写入,更新去重成本高);不适合高并发的点查(每条查询开销高);能力集中在读和聚合
  • 一句话:要做数据仓库、BI 报表、行为分析,上它;要做在线业务存储,别用它

Cassandra —— 海量写入的分布式宽列 去中心化架构(P2P),节点平级、线性扩展、没有单点。面向”海量写入 + 高可用 + 全球多地”的场景(典型如日志采集、消息流)。

  • 性能:极大规模写入吞吐惊人,扩展靠加节点
  • 瓶颈:复杂查询受限——查询基本要按主键走,没那么多灵活姿势;强一致性实现成本高;运维复杂度不低
  • 一句话:当你的数据量大到 MySQL 完全扛不住、又要全球分布时,才轮到它

新兴力量:向量数据库#

AI 时代冒出来的新类别,专门做语义检索(把文本/图片/知识转成向量,按相似度找)。业界最佳实践是给 PostgreSQL 装 pgvector 扩展(中小规模够用),或者数据量特别大时上专门的 Milvus / Qdrant。

  • 一句话:做 RAG、语义搜索、推荐这类 AI 应用,给现有数据库加个向量能力就够了,别动不动就引一个重型向量库

一张表看懂怎么选#

数据库数据模型性能强项核心瓶颈最佳场景
PostgreSQL关系 + 多种扩展复杂查询/功能全面海量写入水平扩展难业务逻辑复杂的核心系统
MySQL关系简单查询、生态熟复杂分析与半结构化弱Web 应用、传统业务
MongoDB文档海量写入、灵活扩展事务/JOIN 弱数据模型多变、需横向扩展
Redis内存 KV读写最快内存成本、容量受限缓存、会话、限流
Elasticsearch倒排索引全文搜索/聚合非主存、运维重搜索、日志分析
ClickHouse列式海量聚合分析频繁删改弱数据仓库、BI
Cassandra宽列极大规模写入灵活查询受限海量日志、多数据中心

你现在就可以用的选择逻辑#

按业务场景走:

  • 核心业务要事务、关系复杂 → PostgreSQL(新项目首选)/ MySQL(团队求稳)
  • 要缓存、会话、实时计数 → Redis
  • 数据模型天天变、要横向扩展 → MongoDB
  • 要做站内搜索、日志分析 → Elasticsearch
  • 报表、BI、海量分析 → ClickHouse
  • 数据大到关系库扛不住、全球分布 → Cassandra
  • 做 AI 语义检索 → PostgreSQL + pgvector 起步,不够再上 Milvus

最后一条铁律:真实系统几乎都是多数据库混用的。 前端用 Redis 扛缓存,核心业务 PostgreSQL 存数据,日志丢 Elasticsearch / ClickHouse 做分析——“一种数据库打天下”的想法,别在架构设计里出现。

数据库选型从来不是单选题,而是”每个环节选对工具”的组合题。搞懂每个库的性能上限和瓶颈在哪,你就能在架构评审时说出”为什么这里用这个”,而不是”因为大家都这么说”。

主流数据库到底怎么选?一文讲透性能、瓶颈与适用场景
https://021028.xyz/posts/default/107/
作者
021028
发布于
2026-09-11
许可协议
CC BY-NC-SA 4.0