暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 16 新特性来了......

前言:

详见:
https://www.postgresql.org/about/news/postgresql-16-beta-1-released-2643/ 16Beta-1 release于2023.5.23日正式发布

总的来说,这个Release除了一些性能增强,大部分还是一些修修补补。我们期待的64bit-xid,conn pool,  direct I/O以及全库加密方面的功能都还显得遥遥无期。个人也吐槽一下,真的希望PostgreSQL Global Development Group有出现一位真正有担当的大拿,积极推动有意义的功能早点并库,而不是各种理由让那些功能滞后那么多年。

这个版本包含了PostgreSQL 16正式发布时可用的所有特性的预览,尽管在测试期间发布的一些细节可能会发生变化。

你可以在发布说明中找到有关PostgreSQL 16中所有特性和变化的信息:

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

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

您的测试和反馈将帮助社区确保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%。

该版本还引入了对x86和ARM架构下使用SIMD的CPU加速的支持,包括对处理ASCII和JSON字符串、数组和子事务搜索的优化。另外,PostgreSQL 16在libpq (PostgreSQL的客户端库)中引入了负载平衡。

逻辑复制增强

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

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

开发人员的经验

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

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

安全特性

PostgreSQL 16继续让用户能够授予特权访问某些功能,也不需要超级用户具有新的预定义角色。其中包括:

pg_maintenance和pg_create_subscription,

前者支持执行VACUUM、ANALYZE、REINDEX等操作,后者允许用户创建逻辑复制订阅。此外,从这个版本开始,逻辑复制订阅者将以表所有者的身份执行表上的事务,而不是超级用户。

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

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

监控与管理

PostgreSQL 16增加了几个新的监控特性,包括新的pg_stat_io视图,它提供I/O统计信息。这个版本还提供了上一次扫描表或索引的时间戳。对于用于pg_stat_activity的规范化算法也有改进。

此版本包括对页面冻结策略的改进,这有助于真空和其他维护操作的性能。PostgreSQL 16还改进了对文本排序的一般支持,提供了文本排序的规则。PostgreSQL 16将ICU设置为默认的排序提供程序,并且还增加了对预定义的unicode和ucs_basic排序的支持。

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

其他值得注意的变化

PostgreSQL 16删除了promote_trigger_file选项来启动standby升级。用户应该使用pg_ctl promote命令或pg_promote()函数来提升备用状态。

PostgreSQL 16引入了Meson构建系统,它将最终取代Autoconf。该版本还增加了对开发特性的基本支持,这些特性将在未来的版本中得到改进。这包括启用DirectIO的开发人员标志,以及在订阅者中指定origin=none时使用逻辑复制在两个表之间进行双向复制的能力。

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

附加功能

PostgreSQL 16增加了许多其他的新特性和改进。其中许多可能对您的用例也有帮助。有关新增和更改功能的完整列表,请参阅发行说明:

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

测试bug和兼容性

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

在PostgreSQL wiki上有一个公开的问题列表。你可以在PostgreSQL网站上使用这个表单报告错误:

https://www.postgresql.org/account/submitbug/

测试计划

这是版本16的第一个测试版。PostgreSQL项目将根据测试的需要发布额外的beta版本,然后是一个或多个候选版本,直到2023年底的最终版本。欲了解更多信息,请参阅Beta测试页面: https://www.postgresql.org/developer/beta/。

小结:

后续有时间将依据:

https://www.postgresql.org/docs/16/release-16.html 针对一些有特色的新功能做一些实例介绍

参考:


  • Download: https://www.postgresql.org/download/

  • Beta Testing Information: https://www.postgresql.org/developer/beta/

  • PostgreSQL 16 Beta Release Notes: https://www.postgresql.org/docs/16/release-16.html

  • PostgreSQL 16 Open Issues: https://wiki.postgresql.org/wiki/PostgreSQL_16_Open_Items

  • Feature Matrix: https://www.postgresql.org/about/featurematrix/#configuration-management

  • Submit a Bug: https://www.postgresql.org/account/submitbug/






2023年PostgreSQL考试认证开班计划
◆PostgreSQL认证讲师全国招募
PostgreSQL培训认证开班通知 | PCM认证大师第7营
PostgreSQL证书发放通知 | PCP认证专家
最佳学员:PostgreSQL 认证专家(PCP)奚之宝(深圳麦凯莱)
最佳学员:PostgreSQL 认证专家(PCP)余小勇
最佳学员:PostgreSQL 认证专家(PCP)缪晓丽(江苏新大陆)
优秀学员:PCA第11营最佳学员
PostgreSQL-PCP认证考试(上海站)成功举办
PostgreSQL-PCP认证专家考试(培训)-北京站-成功举办
PostgreSQL-PCM认证大师考试(天津站)成功举办


文章转载自PostgreSQL考试认证中心,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论