图多尔·戈卢本科:深入探索Postgres 18的新功能

图多尔·戈卢本科:深入探索Postgres 18的新功能

💡 原文英文,约4100词,阅读约需15分钟。
📝

内容提要

Postgres 18已稳定发布,新增异步IO、OAuth 2.0支持及UUIDv7等功能,性能优化包括btree跳过扫描,简化开发者操作。升级过程简单,影响较小,适合开发者和运维人员。

🎯

关键要点

  • Postgres 18已稳定发布,新增异步IO、OAuth 2.0支持及UUIDv7等功能。
  • 性能优化包括btree跳过扫描,简化开发者操作。
  • 升级过程简单,影响较小,适合开发者和运维人员。
  • 异步IO提供更直接的IO请求控制,支持直接IO,提升性能。
  • OAuth 2.0支持提供安全的身份验证方式,避免使用长期密码。
  • UUIDv7提供可排序的UUID,解决了UUIDv4的性能问题。
  • RETURNING子句支持返回旧值和新值,简化开发者操作。
  • 新增虚拟生成列,计算在读取时,默认设置为虚拟。
  • 支持逻辑复制生成列,增强CDC工具的功能。
  • 时间数据库改进,支持主键和唯一约束的WITHOUT OVERLAPS子句。
  • 新增NOT VALID约束,允许在不验证现有行的情况下添加约束。
  • 支持在分区表上声明NOT VALID外键约束,减少锁定。
  • 新协议版本3.2,增强查询取消的密钥长度。
  • pg_upgrade速度更快,转移统计信息减少升级后性能损失。
  • K8s环境中扩展管理更容易,支持声明式扩展管理。
  • VACUUM改进,降低了激进VACUUM的成本。
  • EXPLAIN改进,默认显示BUFFERS,提供更多查询信息。
  • 新增每个进程的统计信息,增强监控能力。
  • 索引优化,btree跳过扫描提升查询效率。
  • SQL语言函数使用计划缓存,提升查询性能。
  • 自连接消除优化,减少冗余,提高查询效率。
  • DISTINCT值重新排序,减少排序开销。
  • 新增casefold()函数,改进大小写匹配。
  • lower()和upper()函数实现更快,优化了映射表。
  • GiST索引构建速度更快,支持排序构建模式。
  • 新增数组便利函数array_reverse()和array_sort()。
  • json_strip_nulls()函数新增参数,移除null数组元素。

延伸问答

Postgres 18的新功能有哪些?

Postgres 18新增了异步IO、OAuth 2.0支持、UUIDv7、btree跳过扫描等功能。

异步IO在Postgres 18中有什么优势?

异步IO提供更直接的IO请求控制和支持直接IO,提升性能和降低资源使用。

UUIDv7相较于UUIDv4有什么改进?

UUIDv7是可排序的,解决了UUIDv4在索引局部性和压缩性能上的问题。

如何在Postgres 18中使用OAuth 2.0进行身份验证?

可以通过SSO提供商进行交互式访问,应用程序可使用OAuth工作流进行身份验证。

Postgres 18的升级过程复杂吗?

升级过程简单,影响较小,适合开发者和运维人员。

Postgres 18中如何优化VACUUM操作?

Postgres 18通过提前扫描可见页面和调整插入阈值来降低激进VACUUM的成本。

➡️

继续阅读