💡
原文英文,约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性能提升,支持并行处理和目录交换。
➡️