“索引不仅仅是加上一行 CREATE INDEX。在 2026 年,它是一门空间与时间的平衡艺术。”

随着 PostgreSQL 18 的异步 I/O 引擎实装以及 JSONB 的爆发式应用,优化规则已经改变。如果你还在依赖默认的 B-Tree 索引,你可能浪费了 50% 以上的硬件性能。


2026 年索引速查表

索引类型推荐场景 (2026)
B-Tree标准等值 (=) 及 范围查询。PG18 针对 UUIDv7 进行了专项优化。
GIN必选 。用于 JSONB (@>)、数组及全文检索。
BRIN“大数据”索引。适用于按时间顺序排列的 100GB+ 巨型表。
GiST地理空间数据 (PostGIS) 及 具有重叠性质的范围类型。
⚠️
生产环境金科玉律

在生产环境运行索引创建时,请务必使用 CONCURRENTLY。锁死一个核心业务表足以让你面临重大事故风险。


JSONB 性能:混合动力策略

极致技巧:jsonb_path_ops

默认的 GIN 索引会记录每一个 K-V。如果你只需要简单的包含判定 (@>),请切换到 jsonb_path_ops 以获得更小的索引体积和更快的查询速度。

-- 更快、更轻的索引
CREATE INDEX idx_data_path ON events USING GIN (payload jsonb_path_ops);

连接池:Supavisor 的统治力

在 2026 年,Serverless 架构已是主流。

  • Supavisor : 云原生时代的首选。基于 Elixir 构建,轻松应对百万级连接。
  • PgBouncer : 轻量级老兵。在低配 VPS 或嵌入式环境依然有生命力。

总结:敬畏数据

Postgres 可以承载 PB 级的数据量,前提是你的索引有明确的设计意图。不要把数据库当成单纯的垃圾桶,要把它当成精密的“状态引擎”。