关键要点
- 根据你的存储、查询组合、缓存行为和维护工作负载对异步 I/O 进行基准测试。
- UUIDv7 改善了索引局部性,但标识符设计仍需领域和暴露决策。
- 时态约束可以将重要的有效性规则推到更靠近数据的位置。
- 将大版本升级视为经过度量的平台变更,而非功能开关。
异步 I/O 改变了读取路径
PostgreSQL 18 引入了异步 I/O 子系统,可以并发发出多个读取请求。当存储延迟和工作负载形态此前导致吞吐量未被充分利用时,顺序扫描、位图堆扫描和诸如 vacuum 等维护操作都可以从中受益。
这并不意味着每个应用程序都会变快。以缓存点查询为主、受锁竞争影响、查询效率低下或应用调用缓慢的系统可能变化不大。团队应获取代表性的基线数据、测试支持的 I/O 方法,并观察 CPU、存储队列深度、延迟分布和 vacuum 行为。
UUIDv7 将分布式身份与索引局部性对齐
随机 UUIDv4 值会将插入分布到整个 B 树中,这可能增加写入密集型表的页面流失。UUIDv7 包含时间排序,同时保留全局可分布式生成,为新行提供更好的索引局部性。
采用仍应深思熟虑。公共标识符、事件 ID、租户边界、复制、迁移和时间戳泄露都值得评审。一个对数据库友好的默认值是有用的,但它不能替代领域身份设计。
时态约束使有效性规则显式化
许多企业系统对分配、价格、权限、合同和有效配置进行时间维度建模。防止重叠的有效性范围通常需要仔细的加锁或应用端检查。
PostgreSQL 不断演进的时态特性允许将更多此类不变量在数据库中表示和执行。这可以简化应用逻辑,但团队在迁移之前应定义时区语义、边界包含性、修正历史和查询模式。
生成值与 OAuth 影响不同的架构层
虚拟生成列可以在不存储额外副本的情况下暴露确定性计算值,当表达式稳定且查询行为已被理解时很有用。当计算代价昂贵或索引策略需要存储数据时,它们不能替代物化。
OAuth 认证扩展了将 PostgreSQL 访问与组织身份集成的选项。生产环境的采用仍需连接池兼容性、令牌生命周期处理、管理员恢复、服务身份,以及人类访问和应用访问之间的明确分离。
为运维理由而升级
一个好的升级计划从工作负载证据开始:查询统计、表增长、维护持续时间、存储行为、扩展兼容性、复制拓扑、恢复目标和回滚约束。
新特性应在大版本在你的环境中稳定后再启用。当分离可以使故障更容易理解时,将“升级引擎”与“更改标识符策略”或“更改 I/O 方法”分开。