社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

PostgreSQL 越来越火,为什么大多数团队最后还是没放弃 MySQL?

脚本之家 • 6 月前 • 284 次点击  
将 脚本之家 设为“星标⭐”
第一时间收到文章更新

这几年后端圈有个现象挺明显的:

一聊数据库,越来越多人开始夸 PostgreSQL。

夸它 JSONB 强、扩展生态丰富、SQL 更标准、向量和时序场景更顺手,甚至不少人会直接给出一句很武断的话:

“PostgreSQL 才是未来,MySQL 早该退场了。”

但如果你真的去看公司里的生产系统,看招聘市场,看大厂存量项目,你又会发现另一个现实:

嘴上吹 PG 的人越来越多,真正把 MySQL 扔掉的团队,其实没有想象中那么多。

这件事表面上看挺矛盾。

可如果你真的做过项目、做过技术选型、踩过线上迁移的坑,你就会明白:

数据库这件事,从来不是一个单纯比参数、比功能、比新旧的题。

它本质上是一道特别典型的工程现实题。

今天我想聊的,不是谁吊打谁。

我更想把这个问题讲透:

PostgreSQL 明明越来越强,为什么 MySQL 还是稳稳地活着?


先说我的结论

如果你只看数据库能力,PostgreSQL 确实越来越像“更先进的那一个”。

但如果你把视角拉到公司、团队、历史系统、迁移代价和生产稳定性,MySQL 仍然是很多组织最现实的选择。

说得再直白一点:

PostgreSQL 赢在技术能力。

MySQL 赢在组织惯性。

而在绝大多数公司里,后者的权重,往往比前者更高。

很多工程师容易把数据库选型看成“谁更强”的比赛。

但真实世界不是这样运转的。

一个系统选数据库,不只是要考虑:

  • • 查询能力强不强
  • • 数据类型丰不丰富
  • • 扩展生态全不全

还要考虑:

  • • 现有团队会不会用
  • • DBA 和运维体系是不是围着它建起来的
  • • 线上有没有一堆历史系统压着
  • • 一旦迁移,谁来承担中间的事故风险

这就是为什么,技术讨论里 PG 经常占上风,但落到公司决策里,MySQL 却经常赢。


PostgreSQL 的强,已经不是“少数人吹出来的强”

先把话说公平。

PG 这几年声量变大,不是因为技术圈跟风,而是它确实越来越能打。

1. 它更像一个“现代数据库”

你只要做过稍微复杂一点的系统,就会发现很多业务根本不是简单 CRUD。

你会遇到:

  • • 半结构化 JSON 数据
  • • 比较重的分析查询
  • • 数组、范围类型
  • • 模糊搜索
  • • 地理空间
  • • 时序
  • • 向量检索

这种场景里,PG 的体验往往会比 MySQL 顺手很多。

它给人的感觉不是“能不能支持”,而是“它一开始就知道你迟早会用到这些能力”。

尤其是在 AI 场景里,PostgreSQL + pgvector 这条路越来越常见,就是一个很典型的信号。

很多项目根本不需要一上来就上专门的向量数据库,用 PG 就能先把事情跑起来。

2. 它的扩展生态真的很强

PG 真正可怕的地方,不只是本身功能强,而是它背后那套扩展生态太完整。

很多团队喜欢它,不是因为“它支持某一个功能”,而是因为:

它像一个数据库平台,而不只是一个数据库内核。

你要向量,有 pgvector。

你要时序,有 TimescaleDB。

你要 GIS,有 PostGIS。

你要全文检索、模糊匹配、分析能力,都能找到成熟扩展。

这意味着很多过去要靠外围系统硬拼起来的能力,现在可以更自然地收进一套体系里。

3. 它对技术团队更有吸引力

这点很关键。

很多工程师喜欢 PG,并不是因为它“更新潮”,而是因为它在很多细节上更接近工程师的审美。

比如:

  • • SQL 标准兼容更好
  • • 功能边界更完整
  • • 扩展方式更开放
  • • 复杂查询能力更有底气

所以如果你做的是新项目,团队技术能力也不错,业务又明显不是那种“永远只有简单表结构”的系统,PG 确实会很有诱惑力。

这不是吹。

这是它真实的竞争力。


但 MySQL 真正的壁垒,从来不是“功能也很强”

如果你把 MySQL 看成一个“功能稍弱的旧数据库”,那你就看错重点了。

MySQL 最厉害的地方,不是它某一个参数多亮眼,而是它背后已经沉淀成了一整套工业惯性。

1. 太多系统,是围着 MySQL 长大的

一家公司用了十年 MySQL,真正难替代的往往已经不是数据库本身,而是围绕它形成的一切:

  • • 运维流程
  • • DBA 经验
  • • 主从切换方案
  • • 监控体系
  • • 慢查询分析平台
  • • 备份恢复脚本
  • • 故障排查 SOP

这些东西平时不显山露水,但一到线上出事,就是最值钱的资产。

很多人喜欢把这叫“历史包袱”。

我不太认同。

因为它本质上不是包袱,而是企业已经付出时间和成本换来的稳定性。

你让公司迁去 PG,本质上不是换个数据库,而是把这套长期积累下来的生产经验,重新建立一遍。

这个代价,不是很多技术讨论里一句“PG 更好”能抹平的。

2. MySQL 的人才池太大了

这一点非常现实,也非常重要。

数据库选型这件事,最后一定会落到人身上。

你今天要招人:

  • • 会 MySQL 的开发更多
  • • 会 MySQL 的 DBA 更多
  • • 遇到 MySQL 故障能快速找到经验的人更多
  • • 社区里的现成方案和排障案例也更多

这意味着什么?

意味着 MySQL 的组织下限很高。

你不一定把它玩到最极致,但绝大多数团队都能把它稳定用到一个还不错的水平。

而 PG 的问题在于,它的上限可能更高,但很多组织未必接得住它带来的学习和迁移成本。

3. 很多系统根本没有迁移的商业价值

这一点我觉得最容易被忽略。

技术人喜欢问:

“既然 PG 更强,为什么不迁?”

但公司真正会问的是:

“迁完之后,我能多赚多少钱,还是少出多少事?”

如果你的 MySQL 系统现在跑得很稳,吞吐也够,团队也熟,线上事故也可控,那数据库迁移这件事,很可能就没有足够强的业务收益。

反过来,它却一定有很清晰的成本:

  • • SQL 方言兼容问题
  • • ORM 细节差异
  • • 复杂查询和存储过程迁移
  • • 双写和回滚方案
  • • 数据一致性校验
  • • 中间期稳定性风险

很多团队不是不知道 PG 更现代,而是看完这张账单之后,发现这件事不值得。

所以你要理解:

MySQL 没被替代,不是因为大家不懂技术,而是因为很多系统根本没有“非换不可”的理由。


你以为大家在选数据库,其实大家在选风险

我越来越觉得,很多技术选型问题,表面上是在选技术,实际上是在选风险。

数据库尤其如此。

你选 PostgreSQL,通常是在为未来能力买单。

你选 MySQL,很多时候是在为当前稳定性买单。

两者都不天然正确。

关键在于你的场景是哪一种。

如果你是一个新项目,而且业务复杂度高、团队能力也足够,PG 当然值得优先考虑。

因为它能让你未来少走很多弯路。

但如果你手里是一个跑了 8 年的 MySQL 系统,业务逻辑复杂、依赖深、团队又对 MySQL 非常熟,那继续用 MySQL,很多时候反而是最成熟的决定。

这不是保守。

这叫理性。


如果让我来定规则,我会这么选

数据库选型这件事,我一般不会上来就问“谁更强”。

我会先问下面这几个问题。

1. 新项目,还是老系统?

如果是新项目,没有历史包袱,那就应该把未来能力考虑进去。

这种情况下,如果业务可能会走向:

  • • 复杂查询
  • • JSON/半结构化数据
  • • 分析型需求
  • • AI/向量能力

那 PG 是很值得优先考虑的。

但如果是存量系统,判断逻辑完全不同。

这时候不是“谁更强”,而是谁更值得动。

2. 业务复杂度到底有多高?

很多人讨论数据库,容易高估未来复杂度,低估现实需求。

如果你的系统核心就是典型 Java 后端:

  • • 用户
  • • 订单
  • • 商品
  • • 库存
  • • 简单事务
  • • 常规分页

那 MySQL 和 PG 的差距,在很多日常业务里并不会像想象中那么夸张。

但如果你的系统天然需要:

  • • 很多复杂筛选和组合查询
  • • 大量 JSON 结构化检索
  • • 更丰富的数据类型支持
  • • 更灵活的扩展能力

那 PG 的价值就会越来越明显。

3. 团队有没有能力吃下新系统?

这一点我特别看重。

技术选型最怕的不是选错,而是选了一个理论上更好、实际上团队根本驾驭不了的东西。

很多架构事故,不是因为底层技术差,而是因为组织能力没跟上。

所以别只问数据库本身牛不牛。

还要问:

你们团队,配不配得上它。

4. 你现在最需要的是未来,还是确定性?

这是一个特别好的判断题。

如果你最需要的是未来能力,那 PG 值得押。

如果你最需要的是确定性,那 MySQL 仍然是一个非常强的现实选择。


最后说一句

技术圈特别喜欢做一种简单粗暴的判断:

谁更先进,谁就该赢。

但真正做过系统的人都知道,现实不是这样。

PostgreSQL 这几年越来越火,是因为它真的越来越强。

MySQL 到现在还没被淘汰,是因为它在真实世界里依然有巨大的组织价值。

这两件事一点都不冲突。

所以别把数据库选型理解成“站队”。

它根本不是信仰问题。

它是一个非常冷静、非常现实、非常工程化的问题。

如果你非让我用一句话概括,那我还是那句:

PostgreSQL 是更好的工程选择,MySQL 是更稳的组织选择。

什么时候选哪个,不看情绪,看场景。


如果你今天从 0 启一个新的 Java 项目,你会选 PostgreSQL,还是继续用 MySQL?欢迎评论区聊聊。

END

图片
  推荐阅读:
  1. 截胡苹果,安卓要先用上屏下Face ID了
  2. 你写的每一行代码,都在重复他80年前的一个偷懒决定
  3. 被AI抢走工作的人,在忙什么?
  4. 这个法国老哥写的C代码,把全世界程序员都干沉默了
  5. 面试官:你抗压能力怎么样? 我:很强 面试官:举例说说 我:能扛住产品经理三天改七次需求。。。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/196155