PostgreSQL 16 在 Azure Database for PostgreSQL 灵活服务器上正式发布

不久前,PostgreSQL 16 在?Azure Database for PostgreSQL 灵活服务器上正式发布,新版本引入了多项新功能,旨在增强数据库的功能和性能。 

企业申请Azure OpenAI绿色通道

→记得评论私信~还可加入试用交流群~

在这篇文章里,我们将介绍 PostgreSQL 16 的一些关键功能,比如:复制增强、性能改进和查询优化。这些功能可以帮助 Azure 用户更高效、更轻松地管理数据库。无论是用于扩展应用程序还是改善整体数据库性能,PostgreSQL 16 都提供了有价值的新工具和改进。下面,让我们具体看看这些更新为 Azure Database for PostgreSQL 灵活服务器用户带来哪些改变。? 

01

故障转移后保留复制槽

当您在 PostgreSQL 中同时使用高可用性(HA) 和逻辑复制的情况下,在以前,当发生故障转移时,复制槽将丢失。这意味着您必须重新创建复制槽并重新同步数据。现在,PostgreSQL 16 改进了这个过程。备用服务器将识别来自主服务器的复制槽,在故障转移后您无需重新配置它们。对于使用旧版本 PostgreSQL 的用户,pg_failover_slots 扩展可以为 PostgreSQL 15 之前的版本提供类似的功能。  

02

从只读副本服务器进行逻辑复制

PostgreSQL 16 引入了直接从只读副本执行逻辑复制的功能。这不仅是一个迭代更新,更是重定义了一套规则。通过将一些数据复制职责从主服务器转移到只读副本,从而减少主服务器的负载。 

此外,通过物理复制和逻辑复制相结合,提升了数据库设置的稳健性。Azure Database for PostgreSQL 灵活服务器的用户现在可以通过采用这一新特性来探索更复杂和可缩放的数据库体系结构。 

图片

 级联复制,将物理复制和逻辑复制相结合。 

03

使用 pg_stat_io 增强的 IO 监控

PostgreSQL 16 引入了?pg_stat_io,这是一种全新的综合视图,可更深入了解数据库中的 IO 活动。这项新功能为数据库监控和性能调优带来了巨大的进步。之前,在 PostgreSQL 中的统计信息不够详细,无法提供微调性能所需的信息。借助?pg_stat_io,信息按后端类型、IO 上下文和 IO 操作进行细分,从而提供之前无法获取到的详细信息级别。? 

图片

 pg_stat_io视图的屏幕截图。 

对于希望优化系统以获得更好性能和效率的数据库管理员来说,这种精细的可见性是非常宝贵的。  

04

在 PG16 中使用? libpq 进行负载均衡

基于?libpq?的数据库适配器可广泛应用于多种编程语言,包括 Python、C、C++ 和 Ruby,其增强的功能大幅提升了数据库系统的可扩展性和安全性。 

load_balance_hosts=random 选项的引入改变了连接分布,通过在主机列表中启用随机选择来实现。这种负载均衡功能,对于将工作负载分布到多个副本服务器上具有特别优势。当与 target_session_attrs=standby 一起使用时,它将连接引导到备用服务器,这对于构建可扩展和具有弹性的架构至关重要。 

require_auth 选项通过允许指定身份验证方法,如 require_auth=scram-sha-256,进一步增强了安全性,确保使用严格的身份验证协议。 

05

FROM 子查询不需要别名

PostgreSQL 16 引入了更加灵活的子查询方法,使得从 Oracle 等数据库的过渡更加顺畅。

在之前的版本中,FROM?子句中的子查询需要一个别名;否则,将导致错误。从 PostgreSQL 16 开始,您可以运行像 SELECT?* FROM (SELECT 1)?这样的查询,无需再为子查询分配别名。此更新减少了重写查询所需的工作量,从而简化了迁移路径,并可能加快向 PostgreSQL 的过渡。? 

06

性能增强

PostgreSQL 16 通过一系列查询规划器增强功能,为数据库性能提升带来了重要影响。最新版本赋予了查询规划器并行执行 FULL ?和? RIGHT? 连接的能力,从而提高查询执行效率。它还为包含聚合函数以及 DISTINCT 或? ORDER BY? 子句的查询提供了更加精细的计划,并为?SELECT DISTINCT? 查询引入了增量排序。这些优化同样适用于窗口函数,使其能够更加高效地运行。 

此外,PostgreSQL 16 在使用 COPY ?命令进行批量数据加载方面也取得了进展。单个加载操作和并发加载操作都变得更快,一些测试表明改进高达 300%。此版本还为使用基于?libpq?的适配器的用户带来了新的客户端负载平衡功能,进一步优化了性能。?

清理(Vacuuming)是通过回收被废弃元组占用的存储空间的过程,该过程在新版本中也得到了改进。清理策略的增强减少了对全表清理的需求,简化了数据库维护,从而确保数据库正常运行。 

PostgreSQL 16 中值得注意的一项新增功能是在 x86 和 ARM 架构上使用单指令多数据 (SIMD) 进行 CPU 加速。这种加速提高了 ASCII 和 JSON 字符串处理的性能,并提高了数组和子事务搜索的速度,巩固了 PostgreSQL 16 作为高性能数据库解决方案的首选地位。? 

PostgreSQL 16 的功能远不止我们所介绍的这些,还有许多增强功能可供探索。要了解所有新的功能和改进,您可以查看官方文档 PostgreSQL 16 的详细发行说明。

?? 复制链接至浏览器打开:

https://www.postgresql.org/docs/release/16.0/

对于 Azure Database for PostgreSQL 灵活服务器用户,由于主要版本升级功能,可以直接过渡到此新版本。升级到 PostgreSQL 16 并充分利用迄今为止最先进的功能。?  

(本文翻译自微软全球官方博客)