PostgreSQL 18 新特性 🆕🤯 - 数据库管理员的视角

PostgreSQL 18 新特性 🆕🤯 - 数据库管理员的视角

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

PostgreSQL 18 beta 1于2025年5月8日发布,新增异步I/O、UUIDv7支持、改进的EXPLAIN命令、NOT NULL约束、RETURNING语法灵活性和虚拟生成列等功能,提升性能和管理效率,简化升级过程。

🎯

关键要点

  • PostgreSQL 18 beta 1于2025年5月8日发布,新增异步I/O、UUIDv7支持、改进的EXPLAIN命令、NOT NULL约束、RETURNING语法灵活性和虚拟生成列等功能。
  • 异步I/O(AIO)提升I/O吞吐量,隐藏I/O延迟,支持io_uring和工作线程实现。
  • UUIDv7支持生成时间排序的UUID,改善数据库性能,特别是在索引和缓存策略方面。
  • EXPLAIN命令改进,自动包含BUFFERS输出,增强VERBOSE模式显示WAL使用情况、CPU统计和平均读取统计。
  • NOT NULL约束可以作为NOT VALID添加,允许在不扫描整个表的情况下添加约束,后续可以验证,减少停机时间。
  • RETURNING语法灵活性增强,INSERT、UPDATE和DELETE操作可以返回旧值和新值,简化应用逻辑。
  • 虚拟生成列成为默认选项,计算值在读取时进行,节省磁盘空间和写入开销。
  • PostgreSQL 18改进了主要版本升级体验,保留规划统计信息,加快升级后的性能恢复,pg_upgrade性能提升。
  • 版本18存在一些兼容性变化,包括时区缩写处理、MD5密码认证的弃用等,需仔细审查不兼容性。

延伸问答

PostgreSQL 18的新特性有哪些?

PostgreSQL 18新增异步I/O、UUIDv7支持、改进的EXPLAIN命令、NOT NULL约束、RETURNING语法灵活性和虚拟生成列等功能。

异步I/O在PostgreSQL 18中有什么作用?

异步I/O提升I/O吞吐量,隐藏I/O延迟,支持io_uring和工作线程实现,主要针对文件系统读取。

UUIDv7的支持对数据库性能有什么影响?

UUIDv7支持生成时间排序的UUID,改善数据库性能,特别是在索引和缓存策略方面,提升数据局部性。

如何在PostgreSQL 18中添加NOT NULL约束?

可以使用ALTER TABLE命令添加NOT NULL约束为NOT VALID,允许后续验证而不需扫描整个表,减少停机时间。

RETURNING语法在PostgreSQL 18中有哪些改进?

RETURNING语法增强了灵活性,允许INSERT、UPDATE和DELETE操作返回旧值和新值,简化应用逻辑。

PostgreSQL 18的版本升级体验有哪些改善?

版本升级时可以保留规划统计信息,加快性能恢复,pg_upgrade性能提升,支持并行处理和目录交换。

➡️

继续阅读