这几年后端圈有个现象挺明显的:
一聊数据库,越来越多人开始夸 PostgreSQL。
夸它 JSONB 强、扩展生态丰富、SQL 更标准、向量和时序场景更顺手,甚至不少人会直接给出一句很武断的话:
“PostgreSQL 才是未来,MySQL 早该退场了。”
但如果你真的去看公司里的生产系统,看招聘市场,看大厂存量项目,你又会发现另一个现实:
嘴上吹 PG 的人越来越多,真正把 MySQL 扔掉的团队,其实没有想象中那么多。
这件事表面上看挺矛盾。
可如果你真的做过项目、做过技术选型、踩过线上迁移的坑,你就会明白:
数据库这件事,从来不是一个单纯比参数、比功能、比新旧的题。
它本质上是一道特别典型的工程现实题。
今天我想聊的,不是谁吊打谁。
我更想把这个问题讲透:
PostgreSQL 明明越来越强,为什么 MySQL 还是稳稳地活着?
先说我的结论
如果你只看数据库能力,PostgreSQL 确实越来越像“更先进的那一个”。
但如果你把视角拉到公司、团队、历史系统、迁移代价和生产稳定性,MySQL 仍然是很多组织最现实的选择。
说得再直白一点:
PostgreSQL 赢在技术能力。
MySQL 赢在组织惯性。
而在绝大多数公司里,后者的权重,往往比前者更高。
很多工程师容易把数据库选型看成“谁更强”的比赛。
但真实世界不是这样运转的。
一个系统选数据库,不只是要考虑:
还要考虑:
这就是为什么,技术讨论里 PG 经常占上风,但落到公司决策里,MySQL 却经常赢。
PostgreSQL 的强,已经不是“少数人吹出来的强”
先把话说公平。
PG 这几年声量变大,不是因为技术圈跟风,而是它确实越来越能打。
1. 它更像一个“现代数据库”
你只要做过稍微复杂一点的系统,就会发现很多业务根本不是简单 CRUD。
你会遇到:
这种场景里,PG 的体验往往会比 MySQL 顺手很多。
它给人的感觉不是“能不能支持”,而是“它一开始就知道你迟早会用到这些能力”。
尤其是在 AI 场景里,PostgreSQL + pgvector 这条路越来越常见,就是一个很典型的信号。
很多项目根本不需要一上来就上专门的向量数据库,用 PG 就能先把事情跑起来。
2. 它的扩展生态真的很强
PG 真正可怕的地方,不只是本身功能强,而是它背后那套扩展生态太完整。
很多团队喜欢它,不是因为“它支持某一个功能”,而是因为:
它像一个数据库平台,而不只是一个数据库内核。
你要向量,有 pgvector。
你要时序,有 TimescaleDB。
你要 GIS,有 PostGIS。
你要全文检索、模糊匹配、分析能力,都能找到成熟扩展。
这意味着很多过去要靠外围系统硬拼起来的能力,现在可以更自然地收进一套体系里。
3. 它对技术团队更有吸引力
这点很关键。
很多工程师喜欢 PG,并不是因为它“更新潮”,而是因为它在很多细节上更接近工程师的审美。
比如:
所以如果你做的是新项目,团队技术能力也不错,业务又明显不是那种“永远只有简单表结构”的系统,PG 确实会很有诱惑力。
这不是吹。
这是它真实的竞争力。
但 MySQL 真正的壁垒,从来不是“功能也很强”
如果你把 MySQL 看成一个“功能稍弱的旧数据库”,那你就看错重点了。
MySQL 最厉害的地方,不是它某一个参数多亮眼,而是它背后已经沉淀成了一整套工业惯性。
1. 太多系统,是围着 MySQL 长大的
一家公司用了十年 MySQL,真正难替代的往往已经不是数据库本身,而是围绕它形成的一切:
这些东西平时不显山露水,但一到线上出事,就是最值钱的资产。
很多人喜欢把这叫“历史包袱”。
我不太认同。
因为它本质上不是包袱,而是企业已经付出时间和成本换来的稳定性。
你让公司迁去 PG,本质上不是换个数据库,而是把这套长期积累下来的生产经验,重新建立一遍。
这个代价,不是很多技术讨论里一句“PG 更好”能抹平的。
2. MySQL 的人才池太大了
这一点非常现实,也非常重要。
数据库选型这件事,最后一定会落到人身上。
你今天要招人:
这意味着什么?
意味着 MySQL 的组织下限很高。
你不一定把它玩到最极致,但绝大多数团队都能把它稳定用到一个还不错的水平。
而 PG 的问题在于,它的上限可能更高,但很多组织未必接得住它带来的学习和迁移成本。
3. 很多系统根本没有迁移的商业价值
这一点我觉得最容易被忽略。
技术人喜欢问:
“既然 PG 更强,为什么不迁?”
但公司真正会问的是:
“迁完之后,我能多赚多少钱,还是少出多少事?”
如果你的 MySQL 系统现在跑得很稳,吞吐也够,团队也熟,线上事故也可控,那数据库迁移这件事,很可能就没有足够强的业务收益。
反过来,它却一定有很清晰的成本:
很多团队不是不知道 PG 更现代,而是看完这张账单之后,发现这件事不值得。
所以你要理解:
MySQL 没被替代,不是因为大家不懂技术,而是因为很多系统根本没有“非换不可”的理由。
你以为大家在选数据库,其实大家在选风险
我越来越觉得,很多技术选型问题,表面上是在选技术,实际上是在选风险。
数据库尤其如此。
你选 PostgreSQL,通常是在为未来能力买单。
你选 MySQL,很多时候是在为当前稳定性买单。
两者都不天然正确。
关键在于你的场景是哪一种。
如果你是一个新项目,而且业务复杂度高、团队能力也足够,PG 当然值得优先考虑。
因为它能让你未来少走很多弯路。
但如果你手里是一个跑了 8 年的 MySQL 系统,业务逻辑复杂、依赖深、团队又对 MySQL 非常熟,那继续用 MySQL,很多时候反而是最成熟的决定。
这不是保守。
这叫理性。
如果让我来定规则,我会这么选
数据库选型这件事,我一般不会上来就问“谁更强”。
我会先问下面这几个问题。
1. 新项目,还是老系统?
如果是新项目,没有历史包袱,那就应该把未来能力考虑进去。
这种情况下,如果业务可能会走向:
那 PG 是很值得优先考虑的。
但如果是存量系统,判断逻辑完全不同。
这时候不是“谁更强”,而是谁更值得动。
2. 业务复杂度到底有多高?
很多人讨论数据库,容易高估未来复杂度,低估现实需求。
如果你的系统核心就是典型 Java 后端:
那 MySQL 和 PG 的差距,在很多日常业务里并不会像想象中那么夸张。
但如果你的系统天然需要:
那 PG 的价值就会越来越明显。
3. 团队有没有能力吃下新系统?
这一点我特别看重。
技术选型最怕的不是选错,而是选了一个理论上更好、实际上团队根本驾驭不了的东西。
很多架构事故,不是因为底层技术差,而是因为组织能力没跟上。
所以别只问数据库本身牛不牛。
还要问:
你们团队,配不配得上它。
4. 你现在最需要的是未来,还是确定性?
这是一个特别好的判断题。
如果你最需要的是未来能力,那 PG 值得押。
如果你最需要的是确定性,那 MySQL 仍然是一个非常强的现实选择。
最后说一句
技术圈特别喜欢做一种简单粗暴的判断:
谁更先进,谁就该赢。
但真正做过系统的人都知道,现实不是这样。
PostgreSQL 这几年越来越火,是因为它真的越来越强。
MySQL 到现在还没被淘汰,是因为它在真实世界里依然有巨大的组织价值。
这两件事一点都不冲突。
所以别把数据库选型理解成“站队”。
它根本不是信仰问题。
它是一个非常冷静、非常现实、非常工程化的问题。
如果你非让我用一句话概括,那我还是那句:
PostgreSQL 是更好的工程选择,MySQL 是更稳的组织选择。
什么时候选哪个,不看情绪,看场景。
如果你今天从 0 启一个新的 Java 项目,你会选 PostgreSQL,还是继续用 MySQL?欢迎评论区聊聊。