翻译:doudou586 ... 新闻稿采编:2020-05-24 19:12:59+08

软件发布:2020-05-24

2020-05-21,PostgreSQL全球开发组宣布PostgreSQL 13的第一个Beta版本正式提供下载。这个版本包含将来PostgreSQL 13正式版本中的所有特性和功能,当然一些功能的细节在正式版本发布时可能会有些变化。 可以从以下网址浏览PostgreSQL 13版本所有的新特性和变化内容: https://www.postgresql.org/docs/13/release-13.html

按PostgreSQL开源社区的精神,我们鼓励大家在用户的场景下测试新功能,以帮助我们消除Bug或是其他可能存在的问题。当然我们不建议大家在生产环境使用PostgreSQL 13 Beta1版本, 我们鼓励在用户特定的工作负载下测试这个版本。

用户的测试将帮助社区来确保PostgreSQL 13版本保持我们一贯以来的标准,即提供稳定、可靠的世界上功能最为强大的开源的关系数据库系统。

用户可以从以下网址浏览有关Beta测试的过程以及如何向PostgreSQL项目作贡献的内容:https://www.postgresql.org/developer/beta/

PostgreSQL 13 新增特性

新增功能

在PostgreSQL 13版本中有许多地方的改进来实现性能的提升,同时对应用开发人员来说,应用开发更加容易。

B树索引是PostgreSQL的标准索引,新版本中对处理重复数据进行了改进。这些改进可以减小索引的大小,提高检索速度,特别是对包含重复数值的索引处理。

PostgreSQL 13版本增加了增量排序,它对查询中部分查询结果已进行过排序的情况下,可以加速全部数据的排序,并且带有OR选项或是IN/ANY选项的查询可以 使用扩展的统计信息(通过 CREATE STATISTICS 创建),这样就可以得到更合理的查询规划和性能提升。

PostgreSQL 13版本现在也可以在进行大数据集查询时,对hash聚合使用磁盘存储。

新版本中对PostgreSQL中的分区表功能有多处增强,包括在多分区表中进行直接连接,以减少总的查询执行时间。分区表现在支持BEFORE关键字的行级触发器,并且现在一个分区表也可以通过逻辑复制的方式进行复制, 而不必像以前那个发布单个分区表。

PostgreSQL 13版本也给类似有FETCH FIRST WITH TIES这样的的查询带来了便利,这样的查询会返回匹配最后行记录所有行记录。对jsonpath的查询增加了.datetime()函数, 它可以将日期或时间的字符串自动转换为对应的PostgreSQL日期或时间数据类型。

现在可以更方便地生成随机UUID,通过使用 gen_random_uuid() 内置函数而不必安装任何扩展。

数据库管理

最令人期待的PostgreSQL 13版本的特性之一是并行处理数据库清理操作VACUUM。这项功能通过在执行VACUUM指令时启用新的PARALLEL选项即可(对vacuumdb指令一样是 --parallel),这个选项 允许用户指定并行处理的进程数。注意,这个特性不适用于指令中有FULL选项。

reindexdb指令也增加了用于并行处理的--jobs 选项,它允许用户指定并行索引数据库的会话数量。

PostgreSQL 13版本引入了“可信扩展”的概念,它允许超级用户指定一个普通用户可以安装的扩展,当然,该用户需要具有CREATE权限。

这个版本也包括了更多的方式来监控PostgreSQL数据库的活动:PostgreSQL 13版本现在可以跟踪WAL日志的使用统计、基于流式备份的进度和ANALYZE指令的执行进度。 pg_basebackup现在可以生成辅助清单文件,用于使用新的pg_verifybackup工具来验证备份的完整性。 现在也可以实现限制为流复制插槽所保留的WAL空间。

pg_dump新增了--include-foreign-data参数,可以实现在导出数据时导出外部数据封装器所引用的其他服务器上的数据。

pg_rewind指令在PostgreSQL 13版本中也有了提升,它不仅可以在宕机后自动恢复,并且可以通过--write-recover-conf选项来配置PostgreSQL备库。 pg_rewind也可以在目标实例上使用restore_command来获取所需的WAL日志。

安全性

PostgreSQL 持续提升安全方面的能力,新版本引入了以下几个特性以提高安全性:

用于强大的psql工具和很多PostgreSQL连接驱动的libpq库,现在新增了几项参数用于安全的服务器连接。PostgreSQL 13引入了channel_binding的参数,可以让客户端指定通道绑定作为SCRAM的组成部分, 并且,使用一个含密码保护的TLS证书的客户端现在可以通过sslpassword参数来指定密码。PostgreSQL现在也支持DER算法编码的证书。

PostgreSQL的外部文件封装器postgres_fdw现在也新增了几个参数来实现安全的连接,包括使用基于证书进行身份验证去连接其他数据库集群。 另外,非特权的帐号现在可以通过postgre_fdw直接连接另一个PostgreSQL数据库而不必使用密码。

其他亮点

PostgreSQL 13 继续提升在Windows平台上的操作性,现在Windows平台上的用户也有了可以通过UDS通讯方式来连接PostgreSQL服务的选项。

PostgreSQL 13文档中增加了术语汇总表,来帮助用户了解PostgreSQL和一些通用的数据库概念。同时对函数和表中的操作符的显示也进行了优化,以帮助提升在线文档和PDF文档的可阅读性。

用于性能测试的pgbench,现在支持系统用户表的分区操作,这样在对包含分区表的性能测试时更加容易。

psql工具现在包括类似于\echo的\warn 指令用于输出数据,差别是\warn会将输出重定向至stderr标准错误的虚拟设备。现在用户在需要了解更多PostgreSQL指令时,使用-help选项会包含一个网络链接,指向:https://www.postgresql.org.

其他的特性功能

许多其他的新特性和改进也加入了PostgreSQL 13,部分内容对一些特定的用户也许比上面提及的改进更重要。请参阅 发布声明详稿 来浏览完整的全部新特性或是改进功能列表。

Bug和兼容性的测试

每一个PostgreSQL版本的稳定性都依赖于社区中的广大用户,来使用自己的工作负载和测试工具来发现Bug及进行回归测试。由于这还是一个Beta版本,数据库操作的方式、新特性的细节以及API可能都还会有小的修改。用户的反馈和测试将帮助我们决定对新特性的最终优化,所以请在近期就进行测试。用户测试的质量将帮助我们决定何时可以发布最终版本。

目前仍待解决的问题在PostgreSQL的WIKI页面上有一个 问题列表。用户可以通过 以下网址来报告Bug:https://www.postgresql.org/account/submitbug/

BETA发布安排

这是13版本的第一个Beta测试版本,PostgreSQL项目组还会根据测试情况发布更多测试版本,然后会发布一个或多个备选RC版本,准备在2020年底发布正式版本。更多信息请参考我们的测试信息页面:https://www.postgresql.org/developer/beta/

相关链接

© 2010 PostgreSQL中文社区