PostgreSQL 16 Beta1发布!

PostgreSQL 16 Beta1发布!

PostgreSQL全球开发团队宣布,PostgreSQL 16的第一个测试版现已可供下载。此版本包含PostgreSQL 16正式发布时将提供的所有功能的预览,尽管该版本的某些细节在测试期间可能会发生变化。

你可以在发行说明中找到有关PostgreSQL 16中的所有功能和更改信息:

https://www.postgresql.org/docs/16/release-16.html

本着开源PostgreSQL社区的精神,我们强烈建议你在你的系统上测试PostgreSQL 16的新功能,以帮助我们消除可能存在的错误或其他问题。虽然我们不建议你在生产环境中运行PostgreSQL 16 Beta1,但我们鼓励你找到针对此测试版运行典型应用程序工作负载的方法。

你的测试和反馈将帮助社区确保PostgreSQL 16版本符合我们的标准,即提供世界上最先进的开源关系数据库的稳定、可靠的版本。请阅读有关我们的beta测试流程以及如何做出贡献的更多信息:
https://www.postgresql.org/developer/beta/

PostgreSQL 16新特性要点

性能

PostgreSQL 16包含执行查询的性能改进。此版本增加了更多的查询并行性,包括允许FULL和RIGHT联接并行执行,以及并行执行string_agg和array_agg聚合函数。此外,PostgreSQL 16可以在SELECT DISTINCT查询中使用增量排序。还有几项针对窗口查询的优化,对RANGE和LIST分区查找的改进,以及对RIGHT和OUTER查询中的“反联接”的支持。

PostgreSQL 16还可以使用COPY将并发批量加载数据的性能提高300%。

此版本还引入了使用SIMD时对x86和ARM架构的CPU加速的支持,包括对处理ASCII和JSON字符串以及数组和子事务查询的优化。此外,PostgreSQL 16为libpq引入了负载均衡,libpq是PostgreSQL的客户端库。

逻辑复制增强

逻辑复制允许PostgreSQL用户将数据实时流式传输到其他PostgreSQL或其他实现逻辑协议的外部系统。在PostgreSQL 16之前,用户只能在主实例上创建逻辑复制发布。PostgreSQL 16增加了在备用实例上执行逻辑解码的功能,为用户提供了更多分配工作负载的选项,例如,使用比主实例更不繁忙的备用实例来实现逻辑复制。

PostgreSQL 16还包括对逻辑复制的几项性能改进。这包括允许订阅者并行应用大型事务,在UPDATE或DELETE操作期间使用PRIMARY KEY以外的索引执行查找,以及允许在初始化期间使用二进制格式复制表。

开发者体验

PostgreSQL 16继续实现用于操作JSON数据的SQL/JSON标准,包括对SQL/JSON构造函数(例如JSON_ARRAY(),JSON_ARRAYAGG()等)和身份函数(ISJSON)的支持。此版本还添加了SQL标准ANY_VALUE聚合函数,该函数返回聚合集中的任意值。为方便起见,PostgreSQL 16现在允许你指定非十进制整数文本,例如0xff、0o777和0b101010,并使用下划线作为千位分隔符,例如5_432。

此版本向psql客户端添加了对扩展查询协议的支持。用户可以执行查询,例如SELECT $1+$2,并使用\bind命令替换变量。

安全特性

PostgreSQL 16继续为用户提供授予对特性功能访问权限的能力,而无需授权拥有新预定义角色的超级用户。其中包括pg_maintain,它支持执行VACUUM、ANALYZE、REINDEX等操作,以及pg_create_subscription,它允许用户创建逻辑复制订阅。此外,从此版本开始,逻辑复制订阅者可以以表所有者(而不是超级用户)的身份对表执行事务。

PostgreSQL 16现在允许你在pg_hba.conf和pg_ident.conf文件中使用正则表达式来匹配用户名和数据库名称。此外,PostgreSQL 16增加了在pg_hba.conf和pg_ident.conf中包含其他文件的功能。PostgreSQL 16还增加了对SQL标准SYSTEM_USER关键字的支持,该关键字返回用于建立会话的用户名和身份验证方式。

PostgreSQL 16还增加了对Kerberos凭证委派的支持,这允许postgres_fdw和dblink等扩展使用经过身份验证的凭证连接到其他服务。此版本还为客户端添加了几个新的面向安全的连接参数。这包括require_auth,客户端可以在其中指定它愿意从服务器接受哪些身份验证方法。你现在可以将系统设置为sslrootcert,以指示PostgreSQL使用操作系统提供的受信任certificate authority(CA)。

监控和管理

PostgreSQL 16增加了几个新的监视功能,包括提供有关I/O统计信息的pg_stat_io新视图。此版本还提供了上次扫描表或索引的时间戳。还改进了用于pg_stat_activity的正常化算法。

此版本包括对页面冻结策略的改进,这有助于执行vacuum和其他维护操作。PostgreSQL 16还改进了对一般文本排序规则的支持,这些排序规则提供了文本是怎样排序的。PostgreSQL 16将ICU设置为默认排序规则,并添加了对预定义的unicode和ucs_basic排序规则的支持。

PostgreSQL 16为pg_dump添加了额外的压缩选项,包括对lz4和zstd压缩的支持。

其他显著变化

PostgreSQL 16删除了激活备用数据库的promote_trigger_file选项。用户应使用pg_ctlpromote命令或pg_promote()函数来promote备库。

PostgreSQL 16引入了Mesonbuildsystem,该系统最终将取代Autoconf。此版本还添加了对开发功能的基础支持,这些功能会在将来的版本中得到改进。这包括用于启用DirectIO的开发人员标志,以及在订阅服务中指定origin=none时,使用逻辑复制在两个表之间进行双向复制的功能。

对于Windows安装,PostgreSQL 16现在支持Windows10的最低版本。

其他特性

PostgreSQL 16中添加了许多其他新功能和改进。其中许多也可能对你的案例有所帮助。有关新增功能和已更改功能的完整列表,请参阅发行说明:
https://www.postgresql.org/docs/16/release-16.html

测试错误和兼容性

每个PostgreSQL版本的稳定性在很大程度上取决于你、社区是否使用你的工作负载和测试工具测试即将推出的版本,以便在PostgreSQL 16正式发布之前发现错误和回归。由于这是一个测试版,因此仍然可以对数据库行为、功能详细信息和API进行细微更改。你的反馈和测试将有助于确定新功能的最终调整,因此请在不久的将来进行测试。用户测试的质量有助于确定我们何时可以发布最终版本。

未解决的问题列表在PostgreSQLwiki中公开。你可以在PostgreSQL网站上使用此表单报告错误:
https://www.postgresql.org/account/submitbug/

测试计划表

这是版本16的第一个测试版。PostgreSQL项目将根据测试需要发布额外的测试版,然后发布一个或多个候选版本,直到2023年底的最终版本。有关更多信息,请参阅Beta测试页面。

链接

(译自 postgresql开源社区邮件)

猜你喜欢

转载自blog.csdn.net/qq_40687433/article/details/130893950