PostgreSQL:现代后端的 Linux

PostgreSQL从来不是花哨的技能。它悄然变成了你周围每个人都希望你掌握的技能。

PostgreSQL:现代后端的 Linux
梯形图转SCL | AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo

每一位我尊敬的资深后端工程师,最终都会用平静的、带着如释重负的语气说出同一句话:放进 Postgres 就行了。

这句话过去听起来像是偷懒。现在它听起来像是用惨痛代价换来的智慧——通过那些没人想解释的故障,和没人想说明的账单。

1、我们无意间建起的动物园

我曾共事过的一个团队,搭建了一套在白板上看起来很酷、运维起来却苦不堪言的技术栈。

Postgres 存核心数据。MongoDB 存那些没人愿意好好建模的灵活文档。Redis 负责缓存。Elasticsearch 负责搜索。

AI 功能上线后,又引入了一个独立的向量数据库处理嵌入。

五个系统,五套凭据,五种不同的故障模式,还有一个精疲力竭的值班工程师,努力回忆哪个仪表盘对应哪次故障。

我们把这称为"为工作选择合适的工具"。回过头来看,那是五把穿着可信伪装、其实用错了的工具。

压垮骆驼的最后一根稻草,是一次例行部署中向量数据库与主数据库发生数据漂移,直到有客户发现才有人注意到。

这就是那种足以改变整个团队对架构思考方式的错误。

2、真正改变的是什么

Postgres 并没有变得更响亮或更时髦。它变得更可扩展了,开源社区开始把这些扩展当作真正的基础设施来对待,而不是附属项目。

CREATE EXTENSION IF NOT EXISTS vector;

CREATE TABLE docs (
  id serial PRIMARY KEY,
  content text,
  embedding vector(1536)
);
SELECT content
FROM docs
ORDER BY embedding <-> '[0.12, 0.98, 0.44]'
LIMIT 5;

就这一条查询,替最近与我合作的一个团队省掉了一整个供应商的合作关系。

全文搜索是内置的。通过 PostGIS,地理空间查询已经稳定生产十多年。

时序数据可以通过一个扩展自然地适配,它平时表现得像普通表,直到你需要它不再是普通表。

3、那张没人再画的架构图

旧的技术栈,大多数人大都这样在白板上画了好多年。

[ App Server ]
     |
     |---> [ Postgres ]      core data
     |---> [ MongoDB  ]      flexible docs
     |---> [ Redis    ]      cache
     |---> [ Elastic  ]      search
     |---> [ Vector DB ]     embeddings

现在大多数团队实际交付的技术栈是这个。

[ App Server ]
     |
     |---> [ Postgres ]------ core data
                |------------ full text search
                |------------ vector search
                |------------ time series
                |------------ geospatial
                |------------ cache

一个盒子。一套备份策略。一个人就能把整个数据层装进脑子里。

4、真实的成本差异

在我自己于一台普通云实例上做的测试中,pgvector 用一点点原始速度,换来了运维成本和复杂度的显著下降。

专用的向量服务在重负载下响应稍快一些。

而 Postgres 的响应速度,对一个普通团队交付的几乎所有产品来说都已经足够快了——而且跑在本来就要付费的硬件上。

几毫秒的差异,对低头刷手机的人类来说是看不见的。而一笔单独的供应商账单,年复一年每月都要付,任何一个不得不去捍卫预算的人都看得见。

5、Postgres 仍然输在哪里

在这里,诚实比炒作更重要。如果一家公司在数十亿向量的规模上运行真正的 Web 级搜索,并且有严格的亚毫秒级保证,那么专门为此目的构建的专用引擎很可能仍然会胜出。

如果写入吞吐量需要跨多个区域且几乎没有协调延迟,那么 Cassandra 或 DynamoDB 之类的东西有其存在的价值。

Postgres 不是魔法,任何告诉你它能在没有权衡的情况下取代所有专用系统的人,很可能从未在真实压力下运维过这些系统。

它取代的,是大多数团队在真正需要之前很久就添加进来的那些不必要的复杂性。

6、为什么 Linux 是对比的正确对象

Linux 从来不是因为它是现有选项中最快或最漂亮而获胜。它获胜是因为它无处不在、不把任何人锁定,还因为成千上万陌生人在我们睡觉时悄悄修复着它的 bug。

Postgres 正走在同一条路上。它不再是令人兴奋的新选择。它是默认选择——你首先伸手去够的那个,只有当你有一个具体的、可衡量的、痛苦的理由时才会替换它。

7、这对你意味着什么

深入学习 Postgres——它的索引行为、查询规划器、扩展生态——开始让人感觉就像多年前深入学习 Linux 一样。

它从来不是花哨的技能。它悄然变成了你周围每个人都希望你掌握的技能。


原文链接: PostgreSQL Is Becoming The Linux Of Modern Backend Engineering

汇智网翻译整理,转载请标明出处