PostgreSQL 17 发布,改进 Vacuum 进程并提升性能

PostgreSQL 17 正式发布:性能优化与新功能

PostgreSQL 全球开发团队近日宣布了最新版本 PostgreSQL 17 的正式发布。这一版本专注于性能优化,并引入了多项新功能,旨在提升数据库的高并发工作负载处理能力和数据管理灵活性。

性能优化

  1. VACUUM 操作改进
    PostgreSQL 17 引入了新的内存管理实现,显著减少了 VACUUM 操作的内存占用,并提高了操作速度。新的数据结构 TidStore 用于存储 VACUUM 操作中的元组 ID,使得内存使用量减少高达 20 倍。此外,用户现在可以查看 VACUUM 索引的进度。
  2. 存储访问优化
    该版本优化了对连续数据块的读取性能,提升了 I/O 效率。
  3. 高并发工作负载增强
    针对高并发场景,PostgreSQL 17 引入了多项改进,以减少共享资源的使用,从而为工作负载释放更多资源。

新功能

  1. 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;
  2. MERGE 命令
    MERGE 命令的引入使得开发者能够在单个 SQL 语句中执行条件更新、插入或删除操作,简化了数据操作并提升了性能。
  3. 逻辑复制增强
    逻辑复制的改进简化了高可用性工作负载的管理,并消除了在主要引擎版本升级时需要删除逻辑复制槽的需求。

业界反馈

  • 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 数据处理和高并发工作负载方面的改进,为数据库管理员和开发者提供了更高效的工具和更灵活的操作方式。

阅读 55
0 条评论