PostgreSQL 15 Beta 1 发布

Posted PostgreSQLChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL 15 Beta 1 发布相关的知识,希望对你有一定的参考价值。

PostgreSQL 全球开发组宣布 PostgreSQL 15 的第一个 beta 版本现已可供下载。此版本包含 PostgreSQL 15 普遍可用时将提供的所有功能的预览,但该版本的某些细节可能会在测试期间发生变化。

您可以在发行说明中找到有关 PostgreSQL 15 中所有功能和更改的信息:
https://www.postgresql.org/docs/15/release-15.html

本着开源 PostgreSQL 社区的精神,我们强烈建议您在您的系统上测试 PostgreSQL 15 的新功能,以帮助我们消除可能存在的错误或其他问题。虽然我们不建议您在生产环境中运行 PostgreSQL 15 Beta 1,但我们鼓励您找到针对此 Beta 版本运行典型应用程序工作负载的方法。
您的测试和反馈将帮助社区确保 PostgreSQL 15 版本符合我们提供世界上最先进的开源关系数据库的稳定、可靠版本的标准。请阅读更多关于我们的Beta 测试过程以及您如何做出贡献的信息:
https://www.postgresql.org/developer/beta/

PostgreSQL 15 功能亮点

开发者体验

PostgreSQL 15 添加了用于简化和增强开发人员体验的新功能。

此版本引入了一个SQL标准命令MERGE,用于有条件地对数据执行写操作(INSERT……UPDATE或DELETE)。在此版本之前,可以使用存储过程或在有限的基础上使用 INSERT ... ON CONFLICT. 使用 PostgreSQL 15,开发人员可以编写简单、富有表现力的查询来选择要采取适当的数据修改操作。

作为9.2 版本的一部分,PostgreSQL 在 2012 年增加了对 JSON 的支持。五年后发布的 SQL/JSON 标准指定了用于访问和操作存储在关系数据库中的 JSON 数据的各种接口。PostgreSQL15 通过包含更多标准SQL/JSON 函数,建立在其对 SQL/JSON 路径语言的现有支持之上 。其中包括 SQL/JSON 构造函数、 query / introspection函数以及将 JSON 数据转换为表的能力。

PostgreSQL 15 增加了更多的正则表达式函数,包括 regexp_count, regexp_instr, regexp_like, 和regexp_substr. range_agg 函数在 PostgreSQL 15 中引入,用于将 range数据类型聚合为 multirange类型,现在也支持聚合multirange类型。

性能

PostgreSQL 15 继续建立在过去几个版本的性能提升之上。此版本包括对较大数据集进行排序时的显着加速。特别是超过 work_mem 参数的数据集。

PostgreSQL 15 的性能提升扩展到各种查询类型。这包括为 SELECT DISTINCT 语句引入并行化以及改进 使用row_number(), rank(), and count() 的窗口函数的性能。使用 PostgreSQL 外部数据包装器 postgres_fdw 来管理远程 PostgreSQL 服务器上的数据的应用程序,现在可以启用并行提交的事务。对于涉及带有分区的表的查询,还有一些性能增强。

PostgreSQL 用于存储大于单页 (8kB) 的数据和TOAST表现在可以利用索引进行重复数据删除 ,并从更小的索引和更快的查找中受益。
用于批量加载数据的 psql命令\\copy,在PostgreSQL 15 中也有性能改进。

备份、存档和压缩

在引入 LZ4 压缩的先前版本的基础上,PostgreSQL 15 为各种组件添加了对 Zstandard (zstd) 压缩的支持。

pg_basebackup(一个用于对 PostgreSQL 集群进行完整备份的实用程序),现在支持使用 Gzip、LZ4 或 Zstandard 的服务器端压缩。pg_basebackup 客户端现在还可以解压使用 LZ4 和 Zstandard 的备份。
 

现在可以通过配置参数 wal_compression 使用 LZ4 和 Zstandard 来压缩预写日志 (WAL) 文件 。此外,PostgreSQL 15 还添加了 recovery_prefetch 选项 ,可以通过预取数据块来帮助加快恢复操作。此版本添加了一个名为 pg_walinspect 的新模块,可让您直接从 SQL 检查有关 WAL 文件的信息。

PostgreSQL 15允许您在不运行shell命令的情况下通过指定 archive_library 来执行WAL归档。可以在 basic_archive 模块中找到一个示例 WAL 存档库。此外,扩展现在可以定义自己的 WAL 资源管理器,使它们能够处理逻辑复制。
 

逻辑复制
PostgreSQL 15 为逻辑复制引入了 行过滤和 列过滤 。此外,用户现在可以方便地指定发布模式中的所有表,而以前只能对数据库中的所有表执行此操作。

此版本还增加了对处理冲突的更多支持 。订阅者现在可以指定 disable_on_error 在发生错误时自动停止逻辑复制。PostgreSQL 15 可以使用 ALTER SUBSCRIPTION ... SKIP 命令跳过应用更改。

管理

PostgreSQL 15 引入了 jsonlog 日志格式。这允许 PostgreSQL 日志被许多执行结构化日志聚合和分析的程序使用。PostgreSQL 15 现在默认记录检查点和缓慢的自动清理操作。
客户端现在psql有一个命令 \\dconfig 用于检查配置参数的值。默认情况下,\\dconfig显示任何未设置为其默认值的配置参数。
PostgreSQL 15 现在将所有服务器级别的统计信息存储在共享内存中。服务器不再运行统计信息收集器进程。

ALTER TABLE 命令现在可以修改表的 ACCESS METHOD,用于设置表使用的存储系统。

安全

在 PostgreSQL 集群中创建数据库时,PostgreSQL 15 引入了新的默认值。创建新数据库时,数据库所有者(由pg_database_owner表示)之外的用户和超级用户不能再在默认 public 模式中创建对象。

PostgreSQL 15 增加了对 "security invoker views""的支持,它使用执行查询而不是创建视图的用户权限。

现在,PostgreSQL 15 中的无权限用户可以通过 SET 和 ALTER SYSTEM 被授予更改服务器变量的特权。
 

附加的功能

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

测试错误和兼容性

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

开放问题列表在 PostgreSQL wiki 中公开可用。您可以 在 PostgreSQL 网站上使用此表单报告错误

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

测试时间表

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


以上是关于PostgreSQL 15 Beta 1 发布的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 15 JSON 函数增强

PostgreSQL15 Beta1版本在RHEL9.0下的编译安装

最稳定可靠,PostgreSQL 12.1版本正式发布!

在 PostgreSQL 的对象数组中添加更多数据

postgresql-client-13 :取决于:libpq5 (>= 13~beta2) 但要安装 12.3-1.pgdg18.04+1

近 20 年的厚积薄发,PostgreSQL 10 新特性详解