PostgreSQL 13 Beta 1发布

2020-05-21 20:34:22

PostgreSQL全球开发集团宣布,PostgreSQL 13的第一个测试版现已可供下载。此版本包含PostgreSQL 13最终版本中所有可用功能的预览,不过在此之前,该版本的一些细节可能会更改。

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

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

您的测试和反馈将帮助社区确保PostgreSQL13版本符合我们的标准,即提供世界上最先进的开源关系数据库的稳定、可靠版本。您可以在这里阅读更多关于我们的测试版测试流程以及如何做出贡献的信息:

PostgreSQL13中有许多新功能,有助于提高PostgreSQL的整体性能,同时使开发应用程序变得更加容易。

B树索引,PostgreSQL的标准索引,在处理重复数据的方式上得到了改进。这些增强功能有助于缩小索引大小并提高查找速度,特别是对于包含重复值的索引。

PostgreSQL13增加了增量排序,当从查询的较早部分排序的数据已经排序时,它可以加速数据排序。此外,带有OR子句或IN/ANY常量列表的查询可以使用扩展统计信息(通过CREATE STATISTICS创建),这可以带来更好的规划和性能提升。PostgreSQL13现在可以使用磁盘存储对大型聚合集进行散列聚合(用作聚合查询的一部分)。

在此版本中,PostgreSQL的分区功能有了更多改进,包括增加了分区表之间直接联接的情况,这可以缩短整体查询执行时间。分区表现在支持BEFORE行级触发器,并且分区表现在可以通过逻辑复制完全复制,而无需发布单独的分区。

PostgreSQL13使用FETCH First with Ties等特性为编写查询带来了更多便利,该特性返回与最后一行匹配的任何附加行。还添加了用于jsonpath查询的.datetime()函数,它会自动将类似日期或类似时间的字符串转换为适当的PostgreSQL日期/时间数据类型。现在生成随机UUID甚至更容易,因为无需保存就可以使用gen_Random_uuid()函数来启用任何扩展。

PostgreSQL13最令人期待的特性之一是VACUUM命令能够并行处理索引。可以使用VACUAL命令上的新PARALLEL选项(或VANUUMDB上的--PARALLEL)访问此功能,该选项允许您指定用于清理索引的并行工作线程的数量。请注意,这不适用于Full选项。

reindexdb命令还使用新的--job标志添加了并行度,该标志允许您指定在对数据库重新编制索引时要使用的并发会话数量。

PostgreSQL13引入了可信扩展的概念,它允许超级用户指定用户可以在其数据库Solong中安装的扩展,因为他们拥有CREATE特权。

此版本包括更多监视PostgreSQL数据库活动的方法:PostgreSQL13现在可以跟踪WAL使用统计数据和流式基本备份的进度,以及分析命令的进度。pg_basebackup还可以生成一个清单,该清单可用于使用名为pg_verifybackup的新工具验证备份的完整性。现在还可以限制复制槽保留的WAL空间量。

pg_dump的新标志--include-foreign-data在转储输出中包括来自外部数据包装器引用的服务器的数据。

pg_rewind命令在PostgreSQL13中也有改进。除了pg_rewind自动执行崩溃恢复之外,您现在还可以使用它通过--write-recover-conf标志配置备用PostgreSQL实例。pg_rewind还可以使用目标实例的restore_command来获取所需的预写日志。

PostgreSQL在这个最新版本中继续改进其安全功能,引入了几个功能来帮助进一步安全地部署PostgreSQL。

libpq是驱动psql和许多PostgreSQL连接驱动程序的连接库,它包括几个新参数来帮助保护连接。PostgreSQL 13引入了channel_binding连接参数,使客户端可以指定需要将通道绑定功能作为SCRAM的一部分。此外,使用受密码保护的TLS证书的客户端现在可以使用sslpassword参数指定其密码。PostgreSQL13还增加了对DER编码证书的支持。

PostgreSQL外部数据包装器(Postgres_Fdw)在如何保护连接方面也得到了几个增强,包括能够使用基于证书的身份验证连接到其他PostgreSQL群集。此外,非特权帐户现在可以通过postgres_fdw连接到另一个PostgreSQL数据库,而无需使用密码。

PostgreSQL13继续改善Windows上的可操作性,因为现在在Windows上运行PostgreSQL的用户现在可以选择通过UNIX域套接字进行连接。

PostgreSQL13文档增加了术语词汇表,以帮助人们熟悉PostgreSQL和通用数据库的概念。与此同时,表格中的函数和运算符的显示也进行了重大修改,这有助于提高Web和PDF文档的可读性。

用于性能测试的pgbench实用程序现在支持对其表进行分区的功能,从而更容易对包含分区的工作负载进行基准测试。

psql现在包括\warn命令,除了\warn将数据发送到stderr之外,该命令在输出数据方面与\echo命令类似。如果您需要有关任何postgresql命令的其他指导,--help标志现在包含一个指向https://www.postgresql.org.的链接。

PostgreSQL13中还添加了许多其他新特性和改进,其中一些对您的用例可能与上面提到的一样重要,甚至更重要。有关新增和更改功能的完整列表,请参阅发行说明:

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

PostgreSQL维基中公开提供了公开发布的问题列表。您可以在PostgreSQL网站上使用此表单报告错误:

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