PostgreSQL 16 的第一个测试版现已可供下载。此版本包含 PostgreSQL 16 的所有功能预览,但 beta 版本的某些细节可能会在测试期间发生变化。
以下为 PostgreSQL 16 beta 1 主要功能亮点:
性能优化
- 此版本为 x86 和 ARM 架构引入了对使用 SIMD 的 CPU 加速的支持,包括对处理 ASCII 和 JSON 字符串以及数组和子事务搜索的优化。此外,PostgreSQL 16 还为 PostgreSQL 的客户端库 libpq 引入了负载平衡。
- PostgreSQL 16 包括查询执行方面的性能改进。此版本增加了更多查询并行性,包括允许并行执行
FULL
和RIGHT
联接,以及并行执行string_agg
和array_agg
聚合函数。 - PostgreSQL 16 可以在
SELECT DISTINCT
查询中使用增量排序。还有一些针对窗口查询的优化,RANGE
和LIST
分区查找的改进,以及对RIGHT
和OUTER
查询中“反连接”的支持。 - PostgreSQL 16 还可以将使用
COPY
并发批量加载数据的性能提高高达 300%。
逻辑复制增强
- 逻辑复制让 PostgreSQL 用户可以将数据实时流式传输到其他 PostgreSQL 或其他实现逻辑协议的外部系统。在 PostgreSQL 16 之前,用户只能在主实例上创建逻辑复制发布者。
- PostgreSQL 16 增加了在备用实例上执行逻辑解码的能力,为用户提供了更多分配工作负载的选项,例如,使用比主实例繁忙的备用实例来逻辑复制更改。
- PostgreSQL 16 还包括对逻辑复制的多项性能改进。包括允许订阅者并行应用大型事务,使用
PRIMARY KEY
以外的索引在UPDATE
或DELETE
操作期间执行查找,并允许在初始化期间使用二进制格式复制表。
开发者体验
- PostgreSQL 16 继续实施用于操作 JSON 数据的 SQL/JSON 标准,包括对 SQL/JSON 构造函数(例如
JSON_ARRAY()
、JSON_ARRAYAGG()
等)和身份函数 (IS JSON
) 的支持。 - 此版本还添加了 SQL 标准
ANY_VALUE
聚合函数,该函数返回聚合集中的任意值。为方便起见,PostgreSQL 16 现在允许指定非十进制整数文字,例如0xff
、0o777
和0b101010
,并使用下划线作为千位分隔符,例如5_432
。 - 此版本向
psql
客户端添加了对扩展查询协议的支持。用户可以执行查询,例如SELECT $1 + $2
,并使用\bind
命令替换变量。
安全功能
- PostgreSQL 16 继续让用户能够授予对功能的特权访问权限,而无需具有新预定义角色的超级用户。其中包括
pg_maintain
,它允许执行诸如VACUUM
、ANALYZE
、REINDEX
等操作,以及pg_create_subscription
,它允许用户创建逻辑复制订阅。此外,从这个版本开始,逻辑复制的订阅者作为表所有者而不是超级用户在表上执行事务。 - PostgreSQL 16 现在允许在
pg_hba.conf
和pg_ident.conf
文件中使用正则表达式来匹配用户名和数据库名。此外,PostgreSQL 16 添加了在pg_hba.conf
和pg_ident.conf
中包含其他文件的功能。 - PostgreSQL 16 还增加了对 SQL 标准
SYSTEM_USER
关键字的支持,该关键字返回用于建立会话的用户名和身份验证方法。 - PostgreSQL 16 还增加了对 Kerberos 凭证委托的支持,它允许
postgres_fdw
和dblink
等扩展使用经过身份验证的凭证连接到其他服务。 - 此版本还为客户端添加了几个新的面向安全的连接参数。包括
require_auth
,其中客户端可以指定它愿意从服务器接受哪些身份验证方法。 - 现在可以将
sslrootcert
设置为system
,以指示 PostgreSQL 使用客户端操作系统提供的受信任的证书颁发机构 (CA) 存储。
监控与管理
- 添加了几个新的监控功能,包括提供有关 I/O 统计信息的新
pg_stat_io
视图。此版本还提供了最后一次扫描表或索引的时间戳。用于pg_stat_activity
的归一化算法也有改进。 - 此版本包括对页面冻结策略的改进,这有助于提高清理和其他维护操作的性能。
- 改进了对文本排序规则的一般支持,它提供了文本排序方式的规则。
- PostgreSQL 16 将 ICU 设置为默认排序规则提供程序,还添加了对预定义的
unicode
和ucs_basic
排序规则的支持。 - PostgreSQL 16 为
pg_dump
添加了额外的压缩选项,包括对lz4
和zstd
压缩的支持。
其他变化
- PostgreSQL 16 删除了
promote_trigger_file
选项以启用对备用数据库的提升。 - PostgreSQL 16 引入了 Meson 构建系统,最终将取代 Autoconf。
- 启用 DirectIO 的开发人员标志,以及在订阅者中指定
origin=none
时使用逻辑复制在两个表之间进行双向复制的能力。 - PostgreSQL 16 现在支持最低版本的 Windows 10。
PostgreSQL 16 beta 下载地址 | 发布公告,可在文档中查看 PostgreSQL 16 的所有新功能。
还没有评论,来说两句吧...