PostgreSQL 16新特性预览

这篇具有很好参考价值的文章主要介绍了PostgreSQL 16新特性预览。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PostgreSQL 全球开发组于 2023-05-25 发布了 PostgreSQL 16 的第一个 beta 版本,可以下载试用。虽然细节可能会有所改变,但是该版本包含了 PostgreSQL 16 最终正式版中所有新特性的预览,让我们赶紧一睹为快吧!

性能改进

PostgreSQL 16 改进了查询执行时的性能,支持更多的并行查询,包括外连接和全连接查询的并行执行,以及聚合函数 string_agg 和 array_agg 的并行支持。除此之外,PostgreSQL 16 实现了 SELECT DISTINCT 查询的增量排序。同时,该版本还优化了窗口函数查询,改进了 RANGE 和 LIST 分区查找,并且支 RIGHT、OUTER 查询中的反连接。

PostgreSQL 16 同时改进了使用 COPY 命令并发批量加载数据的性能,效率提高到了 300%。

新版本还引入了基于 SIMD(单指令流多数据流)技术的 CPU(包括 x86 和 ARM 架构)加速,可以优化 ASCII 字符串和 JSON 字符串处理,以及数组和子事务搜索。另外,PostgreSQL 16 还为 libpq 增加了负载均衡功能。

逻辑复制

逻辑复制可以将 PostgreSQL 数据传输到其他 PostgreSQL 服务器,或者传输到实现了逻辑协议的外部系统。在 PostgreSQL 16 之前,用户只能在主节点创建逻辑复制的发布者。新版本增加了在备节点执行逻辑解码的功能,因此给复制带来了更多选项,例如使用压力更小的备节点作为复制源。

PostgreSQL 16 还提高了逻辑复制的性能,包括订阅者并行应用大型事务,使用索引而不是主键执行 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(代表 5432)。

新版本还增加了 psql 客户端的扩展查询协议,用户可以执行类似 SELECT $1 + $2 的查询,并且使用 \bind 命令替换查询中的变量。

安全增强

PostgreSQL 16 增加了一些预定义的角色,可以给用于授予某些特定功能权限,而不需要授权超级用户特权。新角色包括 pg_maintain,可以执行 VACUUM、ANALYZE、REINDEX 等维护操作;以及 pg_create_subscription,可以创建逻辑复制订阅。另外,从该版本开始,逻辑复制订阅者将会作为表的拥有者执行相关事务,不再以 superuser 作为拥有者执行事务。

PostgreSQL 16 支持在 pg_hba.conf 和 pg_ident.conf 文件中使用正则表达式匹配用户名和数据库名。另外,新版本还支持在这两个文件中引用其他文件。

PostgreSQL 16 还增加了 SQL 标准中的 SYSTEM_USER 关键字,可以用于返回建立会话的用户名和认证方法。

PostgreSQL 16 还支持 Kerberos 证书委托,允许扩展插件(例如 postgres_fdw 和 dblink)使用已验证的凭据连接到其他服务。该版本增加了几个新的面向安全的客户端连接参数,包括 require_auth,用于指定客户端可以接受的服务器认证方法。用户现在可以将 sslrootcert 设置为 system,表示使用客户端操作系统提供的CA 证书存储。

监控管理

PostgreSQL 16 增加了一些新的监控功能,包括提供 I/O 统计信息的 pg_stat_io 视图。该版本还提供了表或者索引最后一次扫描的时间戳,同时改进了 pg_stat_activity 使用的归一化算法。

新版本还改进了页面冻结策略,可以提高 VACUUM 和其他维护操作的性能。

PostgreSQL 16 还改进了文本排序规则的通用支持,提供了定义文本排序的规则。该版本使用 ICU 作为默认排序规则,同时还增加了预定义的 unicode 和 ucs_basic 排序规则。

PostgreSQL 16 提供了额外的 pg_dump 压缩选项,同时支持 lz4 和 zstd 压缩。

其他变更

PostgreSQL 16 删除了提升备库的 promote_trigger_file 选项,用户需要使用 pg_ctl promote 命令或者 pg_promote() 函数将备库提升为主库。

PostgreSQL 16 引入了 Meson 构建系统,最终将会取代 Autoconf。该版本还增加了一些开发功能的基础支持,并且在将来的版本中继续改进。包括启用 DirectIO 的开发者标识,以及当订阅者指定了 origin=none 时在两个表之间的双向逻辑复制功能。

对于 Windows 平台,PostgreSQL 16 支持的最低版本为 Windows 10。

更多功能

PostgreSQL 16 还增加了其他大量的新功能和改进,完整的新特性列表可以参考官方的发行说明。

我们会在后续文章中针对这些新特性具体进行介绍和分析,欢迎关注❤️、评论📝、点赞👍!文章来源地址https://www.toymoban.com/news/detail-464367.html

到了这里,关于PostgreSQL 16新特性预览的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PostgreSQL教程(四):高级特性

    在之前的章节里我们已经涉及了使用SQL在PostgreSQL中存储和访问数据的基础知识。现在我们将要讨论SQL中一些更高级的特性,这些特性有助于简化管理和防止数据丢失或损坏。最后,我们还将介绍一些PostgreSQL扩展。 本章有时将引用教程(三)中的例子并对其进行改变或改进以

    2024年02月21日
    浏览(38)
  • 【PostgreSQL】几个提高性能的小特性

    在PostgreSQL里,LOCALE默认使用C的本地化规则。LOCALE是一种文化偏好的区域设置,包括字母表、排序、数字格式等。 LOCALE里有一个比较重要的规则LC_COLLATE,即排序方式(Collation),它会对数据库行为有显著影响。 当数据库里运行一个like查询,DB上使用非C LOCALE,普通索引可能不支

    2024年02月13日
    浏览(42)
  • Kotlin 1.9 新特性预览:data object (数据单例)

    data object (数据单例) 是 Kotlin 1.9 中预定引入的新特性 ,但其实从 1.7.20 开始就可以预览了。启动预览需要在 gradle 中升级 KotlinCompileVersion: 接下来让我们看看它有哪些特点。 data object 相对于普通 object ,在调用 toString() 的时候,前者的可读性更好,输出类名,不再携带 HashC

    2024年02月12日
    浏览(37)
  • PostgreSQL16中的新增功能:双向逻辑复制

    在这篇博客中, 我们将深入探讨Postgres 16中引入的一些更高级的新功能 。为了更好地理解这些功能,读者应具备一些Linux、Postgres和SQL的基础知识,因为我们将深入探讨这些新功能并指导如何实现它们。 本博客以 在Ubuntu 23.04上运行的PostgreSQL 16(开发版)为基础进行编写 。首

    2024年01月17日
    浏览(53)
  • JAVA16新特性

    2021年3月16日正式发布,一共更新了17JEP https://openjdk.java.net/projects/jdk/16/ 1_JEP 397:密封类(第二次预览) sealed class 第二次预览 通过密封的类和接口来增强Java编程语言,这是新的预览特性,用于限制超类的使用密封的类和接口限制其他可继承或者实现他们的其他类或接口. 目标 允

    2024年02月03日
    浏览(28)
  • postgresql16 物理复制与逻辑复制的实现和对比

    本文面向想要练习 PostgreSQL 中数据库复制基础知识但可能无法访问远程服务器的初学者。我认为学习新技术时,在自己的机器上运行示例以巩固概念是至关重要的。对于副本来说,这可能很困难,因为许多可用的资源假设用户具有一定的 PostgreSQL 经验并且可以访问另一台运行

    2024年02月01日
    浏览(44)
  • React16、17、18版本新特性

    react-16版本新特性 一、hooks 二、memo、lazy、Suspense 三、Profiler Profiler 能添加在 React 树中的任何地方来测量树中这部分渲染所带来的开销 四、createContext、createRef、forwardRef、生命周期函数的更新、Strict Mode 五、Fragment 六、createPortal react-17版本新特性 一、全新的 JSX 转换 React 17以

    2024年02月05日
    浏览(39)
  • PostgreSQL PG16 逻辑复制在STANDBY 上工作 (译)

    开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共1100人左右 1 + 2 + 3)新人会进入3群 Postgres 16刚刚发布了测试版,我对其中

    2024年02月15日
    浏览(48)
  • PostgreSQL 17新特性:PL/pgSQL支持数组%TYPE以及%ROWTYPE

    正在开发中的 PostgreSQL 17 即将增加一个新功能:PL/pgSQL 支持定义伪类型 %TYPE以及%ROWTYPE 数组。 当我们使用 PL/pgSQL 编写存储过程或者函数时,可以定义不同类型的变量。例如: 在此基础上,我们可以通过 %TYPE 以及 %ROWTYPE 定义伪类型,例如: 变量 user_id 的类型基于字段 users

    2024年01月25日
    浏览(50)
  • Flutter最新稳定版3.16 新特性介绍

    Flutter 3.16 默认采用 Material 3 主题,Android 平台预览 Impeller,DevTools 扩展等等 欢迎回到每季度一次的 Flutter 稳定版本发布,这次是 Flutter 3.16。这个版本将 Material 3 设为新的默认主题,为 Android 带来 Impeller 预览,支持为 DevTools 添加扩展等等!与此同时,我们还看到了Flutter Cas

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包