🏠 首页 › 攻略 › Postgres 19 和AI撞上了:开发者该顺手做的4件事

Postgres 19 和AI撞上了:开发者该顺手做的4件事

Postgres 19延期,AI是元凶。新版本给AI工作负载塞了新的索引和检索能力。本文梳理开发者该顺手做的4件事:向量检索、JSONB过滤、分区表、连接池,附SQL片段和navbox在线工具,让数据库跟得上AI节奏。

Postgres 19 延了,锅很大程度甩给了 AI。新版本给 AI 工作负载塞了一堆新东西,向量索引、JSONB 检索、分区都动了刀。

对开发者来说,光知道"有更新"没用。真正该做的是:把日常数据流配齐,让数据库跟得上 AI 的节奏。下面4件事,顺手就能做。

一、给嵌入向量建检索

AI 应用现在很流行把文本塞进向量库。Postgres 不用专门上 Milvus,用扩展就能做相似度检索。

CREATE EXTENSION vector;

ALTER TABLE documents
  ADD COLUMN embedding vector(1536);

CREATE INDEX ON documents
  USING ivfflat (embedding vector_cosine_ops);

查询时按余弦相似度排序,就能拿到最相关的几篇。小团队完全够用,省一套中间件。

二、JSONB + GIN,结构化半结构化一起查

AI 吐出来的数据常常是 JSON。直接存 JSONB,再建 GIN 索引,查起来不慢:

ALTER TABLE events ADD COLUMN payload jsonb;
CREATE INDEX ON events USING gin (payload);

-- 过滤嵌套字段
SELECT * FROM events
WHERE payload->>'model' = 'claude'
  AND payload #> '{usage,tokens}' > 100;

存前先用工具把 JSON 弄整齐。navbox的JSON格式化能秒速缩进、校验嵌套;要按路径取某个字段值,JSON路径查找直接输入路径定位,比肉眼翻快。

三、大表就分区,别让全表扫拖垮

AI 日志、对话记录这类表涨得飞快。按月分区,查询命中单个分区就快很多:

CREATE TABLE chat_log (
  created_at timestamptz NOT NULL,
  session   text,
  content   text
) PARTITION BY RANGE (created_at);

CREATE TABLE chat_log_2026_10
  PARTITION OF chat_log
  FOR VALUES FROM ('2026-10-01') TO ('2026-11-01');

老数据定期挪到冷存储,热分区保持精简。别等单表几十个 GB 才想起这件事。

四、连接池,AI 调用会把你池子打满

AI 服务响应慢、请求多,很容易把数据库连接池挤爆。开个好用的连接池,限制最大连接,设个空闲回收:

PgBouncer 配置示例
max_client_conn = 500
default_pool_size = 20
reserve_pool_size = 5
idle_timeout = 300

同时用工具核对网络层。Postgres 跑在哪个网段、开放哪个端口,子网计算器和IP查询帮你快速定位,省得翻配置文件。

动手顺序

  1. 有向量检索需求,先加 vector 扩展
  2. JSON 数据多的,上 JSONB + GIN
  3. 表开始变大,按月分区
  4. 请求上量了,配连接池

四步做完,Postgres 就从"能存"升级到"跟得上 AI"。

你的库现在跑在哪个版本,向量扩展装上了吗?