PostgreSQL 17 正式发布:性能优化与新功能
PostgreSQL 全球开发团队近日宣布了最新版本 PostgreSQL 17 的正式发布。这一版本专注于性能优化,并引入了多项新功能,旨在提升数据库的高并发工作负载处理能力和数据管理灵活性。
性能优化
- VACUUM 操作改进
PostgreSQL 17 引入了新的内存管理实现,显著减少了 VACUUM 操作的内存占用,并提高了操作速度。新的数据结构 TidStore 用于存储 VACUUM 操作中的元组 ID,使得内存使用量减少高达 20 倍。此外,用户现在可以查看 VACUUM 索引的进度。 - 存储访问优化
该版本优化了对连续数据块的读取性能,提升了 I/O 效率。 - 高并发工作负载增强
针对高并发场景,PostgreSQL 17 引入了多项改进,以减少共享资源的使用,从而为工作负载释放更多资源。
新功能
JSON\_TABLE 支持
PostgreSQL 17 新增了 JSON\_TABLE 函数,允许开发者将 JSON 数据与常规 SQL 数据一起处理。这一功能类似于 MySQL 中的 JSON\_TABLE(),能够查询 JSON 数据并以关系视图的形式呈现结果。SELECT * FROM json_table( '[{"name": "Alice", "salary": 50000}, {"name": "Bob", "salary": 60000}]', '$[*]' COLUMNS ( name TEXT PATH '$.name', salary INT PATH '$.salary' ) ) AS employee;- MERGE 命令
MERGE 命令的引入使得开发者能够在单个 SQL 语句中执行条件更新、插入或删除操作,简化了数据操作并提升了性能。 - 逻辑复制增强
逻辑复制的改进简化了高可用性工作负载的管理,并消除了在主要引擎版本升级时需要删除逻辑复制槽的需求。
业界反馈
- Laurenz Albe(CYBERTEC 高级顾问)指出,尽管 PostgreSQL 17 没有显著的“明星功能”,但这并不意味着 PostgreSQL 失去了发展动力。相反,社区贡献者数量达到了历史新高,许多复杂的功能改进已经完成。
- Dave Stokes(Percona 技术布道师)认为,JSON\_TABLE() 是 PostgreSQL 17 的一大亮点,特别适合处理大量 JSON 格式数据的场景。
- Mehdi Ouazza(MotherDuck 数据工程师)表示,PostgreSQL 17 的发布“悄然终结”了 NoSQL 文档数据库的流行趋势,特别是随着 REST API 和 JSON 格式的广泛应用。
云服务支持
- Amazon RDS 自去年 5 月起已在预览环境中支持 PostgreSQL 17。
- Google Cloud SQL 近期宣布全面支持 PostgreSQL 17 的所有功能。
总结
PostgreSQL 17 通过性能优化和新功能的引入,进一步巩固了其作为开源关系型数据库的领导地位。尽管缺少显著的“明星功能”,但其在内存管理、JSON 数据处理和高并发工作负载方面的改进,为数据库管理员和开发者提供了更高效的工具和更灵活的操作方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。