别扯虚的,先上 Benchmark
2026年了,还在争论 PostgreSQL 和 MySQL 谁更强?我直接告诉你结论:PostgreSQL 在 5 个核心基准测试里赢了 4 个。这不是我瞎吹,是社区里那帮狠人真刀真枪跑出来的。
但等等——MySQL 输了吗?不一定。
我们团队上个月刚把一个日活 500 万的金融 API 从 MySQL 切到了 PostgreSQL。原因?不是 MySQL 慢,而是我们被一个 20 年的老 bug 坑惨了——MySQL Bug #11472,今年 5 月才修好。你敢信?一个从 2005 年就存在的 bug,折磨了我们整整两个月,查询计划器莫名其妙地选错索引,P99 延迟从 120ms 飙到 2.1s。
所以,这篇东西不是教科书,是我和团队在线上环境踩过的坑、流过的血。
高并发场景下的真实对决
内存管理:PostgreSQL 的 OOM 噩梦 vs MySQL 的“轻量”幻觉
先聊个我们都遇到过的事:OOM Killer。
今年 6 月 Hacker News 上那篇《PostgreSQL and the OOM Killer: Why We Use Strict Memory Overcommit》炸了。为啥?因为 PG 在高并发下吃内存是真的狠。我们曾经在 64GB 的机器上跑 PG,work_mem 设了 64MB,结果 200 个连接同时跑排序,直接把内存干到 80GB,OOM Killer 一刀砍死 postmaster。
解决方案?strict memory overcommit + 连接池。别让 PG 直接面对客户端,用 PgBouncer 做中间层,把连接数控制在 50 以内。这是 2026 年跑生产 PG 的铁律。
反观 MySQL,InnoDB Buffer Pool 的内存管理确实更“傻瓜”——你给它 32GB,它就老老实实吃 32GB,不会突然暴走。但代价是什么?复杂查询性能拉胯。
| 维度 | PostgreSQL | MySQL |
|---|---|---|
| 内存控制 | 需要精细调优,否则 OOM 风险高 | Buffer Pool 管理成熟,内存稳定 |
| 复杂查询 (JOIN 5+ 表) | 优化器牛逼,执行计划稳定 | 容易选错索引,20年老bug才修 |
| 高并发写入 | 依赖连接池,原生连接数不宜超200 | 吞吐量高,但死锁检测开销大 |
| JSON 支持 | 原生 JSONB,索引支持完善 | JSON 函数性能一般,不如 PG |
| 运维复杂度 | 需要 VACUUM 调优,但工具链成熟 | 运维简单,但复制延迟问题多 |
| K8s 生态 | CloudNativePG 已经生产可用 | 官方 Operator 相对保守 |
| 社区趋势 | 2026 年新项目首选 | 存量项目多,新项目比例下降 |
K8s 上跑数据库?CloudNativePG 真香
今年 Reddit 上 r/kubernetes 那个帖子《PostgreSQL on Kubernetes in 2026 — Complete CloudNativePG Setup Guide》我看了三遍。说实话,两年前我打死不信能在 K8s 上跑生产数据库。但 CloudNativePG 改变了这个局面。
我们现在的架构:
- 3 节点 HA 集群
- WAL 归档到 S3
- PgBouncer 连接池
- 网络策略隔离
- 自动故障切换 + 时间点恢复
实测故障切换时间:不到 10 秒。这在两年前是想都不敢想的。
MySQL 在 K8s 上的生态?Oracle 官方的 Operator 还是太保守,InnoDB Cluster 在容器化环境下的脑裂问题依然存在。社区里已经有人在吐槽:“MySQL on K8s is a second-class citizen.”
2026年的趋势:PostgreSQL 正在吃掉 MySQL 的午餐
数据不会骗人。看看社区热度:
- PostgreSQL 19 Beta 1 刚发布,Hacker News 上 34 分
- MySQL 9.7.0 LTS 发布,才 3 分
- 新项目里,PG 的选择率已经超过 MySQL
但 MySQL 真的该被淘汰吗?扯淡。
什么时候 MySQL 还是更好的选择?
我说话直:如果你的业务就是简单的 CRUD + 高并发读,MySQL 仍然是王者。
举个真实例子:我们团队另一个项目,一个短视频推荐系统的用户画像服务,每天 10 亿次查询,99% 是 key-value 读取。MySQL + Memcached 的架构跑了三年,稳如老狗。换 PG?成本高、收益低,没必要。
还有一点:MySQL 的运维门槛确实更低。不是每个团队都能养一个 DBA 来调 PG 的 VACUUM 参数。
FAQ
2026 年 MySQL 还值得学吗?
值得,但别当主力。MySQL 在 WordPress、电商、日志场景依然强势,但新项目建议直接上 PG。
PostgreSQL 真的比 MySQL 轻量吗?
恰恰相反。PG 功能多、扩展性强,但内存占用更高。MySQL 才是那个“轻量级”选手——功能少所以稳定,读性能快。
NASA 和 Netflix 用 PostgreSQL?
NASA 有自己的 PG 数据仓库。Netflix 更是把 400 个生产集群从 RDS MySQL 迁移到了 Aurora PostgreSQL。这不是巧合。
高并发下哪个更容易炸?
看你怎么定义“炸”。MySQL 容易在复制延迟和死锁上翻车,PG 容易在内存和 VACUUM 上翻车。没有银弹。
我的最终建议
选 PostgreSQL 当默认,除非你有明确理由选 MySQL。
2026 年的栈应该是这样:
- 新项目:PostgreSQL + PgBouncer + CloudNativePG
- 存量 MySQL:评估迁移成本,高并发读场景可以保留
- 大数据分析:ClickHouse 做列存,PG 做 OLTP
- 别碰 MongoDB 做核心业务,除非你想体验 Schema-less 的噩梦
最后一句:工具是死的,人是活的。 别让数据库选型成为你系统的瓶颈——真正的瓶颈永远是你们的架构设计。