2023年9月14日 - PostgreSQL 全球开发集团今天宣布发布 PostgreSQL 16,这是世界上最先进的开源数据库的最新版本。PostgreSQL 16提高了性能,在查询并行性、批量数据加载和逻辑复制方面有显著改进。此版本为开发人员和管理员提供了许多功能,包括更多 SQL/JSON 语法、针对工作负载的新监控统计数据,以及定义访问控制规则以管理大型队列策略的更大灵活性。PostgreSQL 核心团队成员 Dave Page 表示:“随着关系数据库模式的发展,PostgreSQL 在大规模搜索和管理数据方面不断提高性能。” “PostgreSQL 16 为用户提供了更多方法来扩展和横向扩展其工作负载,同时为他们提供了获得见解和优化数据管理方式的新方法。”PostgreSQL 是一种以其可靠性和稳健性而闻名的创新数据管理系统,受益于全球开发者社区超过 25 年的开源开发,已成为各种规模组织的首选开源关系数据库。
性能改进
PostgreSQL 16通过新的查询规划器优化提高了现有PostgreSQL功能的性能。在这个最新版本中,查询规划器可以并行化FULL和RIGHT连接,为使用带有DISTINCT或ORDER BY子句的聚合函数的查询生成更好的优化计划,为SELECT DISTINCT查询使用增量排序,并优化窗口函数,使其更高效地执行。它还改进了RIGHT和OUTER“反连接”,使用户能够识别连接表中不存在的行。此版本包括在单个和并发操作中使用COPY进行批量加载的改进,测试显示在某些情况下性能提高了300%。PostgreSQL 16在使用libpq的客户端中增加了对负载平衡的支持,并改进了真空策略,减少了全表冻结的必要性。此外,PostgreSQL 16在x86和ARM架构中都引入了使用SIMD的CPU加速,从而在处理ASCII和JSON字符串以及执行数组和子转换搜索时提高了性能。
逻辑复制
逻辑复制允许用户将数据流式传输到其他PostgreSQL实例或可以解释PostgreSQL逻辑复制协议的订阅服务器。在PostgreSQL 16中,用户可以从备用实例执行逻辑复制,这意味着备用实例可以将逻辑更改发布到其他服务器。这为开发人员提供了新的工作负载分配选项,例如,使用备用而不是繁忙的主系统来逻辑地将更改复制到下游系统。此外,PostgreSQL 16在逻辑复制方面还有一些性能改进。订阅服务器现在可以使用并行工作者应用大型事务。对于没有主键的表,订阅者可以使用B树索引而不是顺序扫描来查找行。在某些条件下,用户还可以使用二进制格式加快初始表同步。PostgreSQL 16中对逻辑复制有一些访问控制改进,包括新的预定义角色pg_create_subscription,它允许用户创建新的逻辑订阅。最后,此版本开始添加对双向逻辑复制的支持,引入了在来自不同发布者的两个表之间复制数据的功能。
开发者经验
PostgreSQL 16 添加了更多来自SQL/JSON标准的语法 ,包括构造函数和谓词,例如JSON_ARRAY()、JSON_ARRAYAGG()和IS JSON。此版本还引入了使用下划线作为千位分隔符(例如5_432_000)和非十进制整数文字(例如0x1538、0o12470和 0b1010100111000)使用下划线的功能。
使用 PostgreSQL 16 的开发人员还可以从psql. 这包括 \bind,它允许用户准备参数化查询并使用\bind来替换变量(例如SELECT $1::int + $2::int \bind 1 2 \g)。
PostgreSQL 16 改进了对文本排序规则的一般支持 ,它提供了文本排序的规则。PostgreSQL 16 默认情况下构建 ICU 支持,从环境中确定默认的 ICU 区域设置,并允许用户定义自定义 ICU 排序规则。
监控
调整数据库工作负载性能的一个关键方面是了解 I/O 操作对系统的影响。PostgreSQL 16 引入了 pg_stat_io关键 I/O 指标的新来源,用于对 I/O 访问模式进行精细分析。
此外,此版本向pg_stat_all_tables视图添加了一个新字段,该字段记录了表示表或索引最后一次扫描时间的时间戳。PostgreSQL 16还通过记录传入参数化语句的值使auto_explain更具可读性,并提高了pg_stat_statements和pg_stat_activity使用的查询跟踪算法的准确性。
访问控制和安全
PostgreSQL 16 提供了更细粒度的访问控制选项并增强了其他安全功能。pg_hba.conf该 版本改进了文件的管理 pg_ident.conf ,包括允许用户和数据库名称的正则表达式匹配以及包含外部配置文件的指令。此版本添加了几个面向安全的客户端连接参数,包括require_auth,它允许客户端指定他们愿意从服务器接受哪些身份验证参数,以及 sslrootcert="system",它指示 PostgreSQL 应使用客户端提供的受信任的证书颁发机构 (CA) 存储。操作系统。此外,该版本还增加了对 Kerberos 凭据委托的支持,允许诸如 postgres_fdw和 之类的扩展dblink使用经过身份验证的凭据连接到受信任的服务。
关于 PostgreSQL
PostgreSQL是世界上最先进的开源数据库,拥有由数千名用户、贡献者、公司和组织组成的全球社区。PostgreSQL 从加州大学伯克利分校开始,以超过 35 年的工程经验为基础,继续以无与伦比的发展速度。PostgreSQL成熟的功能集不仅可以匹配顶级专有数据库系统,而且在高级数据库功能、可扩展性、安全性和稳定性方面超越它们。相关链接
原文链接:https://www.postgresql.org/about/news/postgresql-16-released-2715/
相关阅读:
2023年8月 · 红头文件 - 信创PostgreSQL管理员中级认证培训
7月29日,CUUG PostgreSQL认证考试顺利完成!
2023年8月 · 红头文件
工信人才 [2023] 185号
关于开展PostgreSQL管理员岗位能力提升培训班的通知
报名请联系 CUUG