PostgreSQL 17 Beta 1 发布!

PostgreSQL 全球开发小组宣布,PostgreSQL 17 的第一个测试版本现已可供下载。此版本包含 PostgreSQL 17 正式发布时将提供的所有功能的预览,但测试期间版本的某些细节可能会发生变化。
#PG培训#PG考试#postgresql培训#postgresql考试#postgresql认证
在这里插入图片描述

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

https://www.postgresql.org/docs/17/release-17.html

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

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

https://www.postgresql.org/developer/beta/

PostgreSQL 17 功能亮点

查询和操作性能改进
PostgreSQL 17 以最新版本为基础,并继续提高整个系统的性能。负责回收存储的 PostgreSQL 进程Vacuum1GB具有新的内部数据结构,可将内存使用量减少 20 倍,同时缩短了完成工作所需的总体时间。此外,vacuum 进程不再限制其可使用的内存(由 控制maintenance_work_mem),让您可以选择将更多资源应用于 vacuum 操作。

此版本引入了流 I/O 接口,在执行顺序扫描和运行时可以显示性能改进ANALYZE。PostgreSQL 17 还包括可以控制事务、子事务和多事务缓冲区的可扩展性的配置参数。

PostgreSQL 17 现在可以使用计划器统计信息和公用表表达式(WITH查询)的排序顺序来进一步优化这些查询并帮助它们更快地执行。此外,此版本还显著缩短了使用IN带有B 树索引的子句的查询的执行时间。从此版本开始,PostgreSQL 可以IS NOT NULL从具有约束的列上删除冗余语句,并且不再需要对包含列子句的NOT NULL查询进行处理。现在从 PostgreSQL 17 开始,您可以为BRIN索引使用并行索引构建。IS NULLIS NOT NULL

具有高度并发更改的工作负载可以从 PostgreSQL 17 中受益,因为它改进了预写日志(WAL)锁的管理方式,一些测试表明性能提高了 2 倍。

最后,PostgreSQL 17 添加了更多明确的 SIMD 指令,包括对该bit_count函数的 AVX-512 支持。

分区和分布式工作负载增强
PostgreSQL 17 为分区管理带来了更大的灵活性,增加了拆分和合并分区的功能,并增加了对分区表的标识列和排除约束的支持。此外,PostgreSQL 外部数据包装器( ) 可以从带有和子查询的postgres_fdw查询中获得性能优势,因为现在可以将这些查询推送到远程服务器。EXISTSIN

PostgreSQL 17 为逻辑复制添加了新功能,使其在高可用性工作负载和升级中更易于使用。从 PostgreSQL 17 升级到较新版本开始,您在使用时不再需要删除逻辑复制槽pg_upgrade,从而避免在升级后重新同步数据。此外,此版本还引入了逻辑复制的故障转移控制,为在高可用性环境中管理 PostgreSQL 数据库提供了更多控制。PostgreSQL 17 还允许逻辑复制订阅者使用hash索引进行查找,并引入了pg_createsubscriber使用物理复制在副本上添加逻辑复制的命令行工具。

开发人员体验
PostgreSQL 17 继续以 SQL/JSON 标准为基础,增加了对JSON_TABLE可以将 JSON 转换为标准 PostgreSQL 表的功能以及 SQL/JSON 构造函数(JSON、JSON_SCALAR、JSON_SERIALIZE)和查询函数(JSON_EXISTS、JSON_QUERY、JSON_VALUE)的支持。值得注意的是,这些功能最初计划用于 PostgreSQL 15 版本,但由于设计考虑,在测试期间被恢复,这就是我们要求您在测试期间帮助我们测试功能的原因之一!此外,PostgreSQL 17 在其jsonpath实现中添加了更多功能,以及将 JSON 值转换为不同数据类型的能力。

该MERGE命令现在支持RETURNING子句,让您可以进一步处理已修改的行。您还可以MERGE使用新函数查看命令的哪一部分修改了行merge_action。PostgreSQL 17 还允许您使用该MERGE命令更新视图,并添加了一个WHEN NOT MATCHED BY SOURCE子句,以便在源行不满足条件时提供行为。

COPY用于高效地批量加载和导出 PostgreSQL 数据,现在使用 PostgreSQL 17,导出大行时性能可提高 2 倍。此外,COPY当源编码与目标编码匹配时,性能有所提高,并且有一个新选项,ON_ERROR即使插入行时出现错误,也可以继续复制。PostgreSQL 17 还为异步和更安全的查询取消例程提供了更好的支持,驱动程序可以使用 libpq API 采用这些例程。

PostgreSQL 17 包含一个内置排序规则提供程序,它提供与排序规则类似的排序语义C,只是使用UTF-8编码而不是SQL_ASCII。此新排序规则保证是不可变的,从而确保无论 PostgreSQL 安装在什么系统上运行,排序的返回值都不会改变。

安全功能
PostgreSQL 17 添加了一个新的连接参数,它允许 PostgreSQL 在使用ALPNsslnegotiation时执行直接 TLS 握手,从而消除网络往返。PostgreSQL在 ALPN 目录中注册为。postgresql

此版本引入了在身份验证期间执行的事件触发器,并在 libpq 中包含了一个新的 API,可PQchangePassword在客户端自动对密码进行哈希处理,以防止意外在服务器中以纯文本形式登录。

PostgreSQL 17 添加了一个名为 的新预定义角色,该角色pg_maintain授予用户在所有关系上执行VACUUM、ANALYZE、、和 的权限。此版本还确保 可以安全地执行、CLUSTER、和等维护操作。最后,用户现在可以使用来设置无法识别的自定义服务器变量的值。REFRESH MATERIALIZED VIEWREINDEXLOCK TABLEsearch_pathVACUUMANALYZECLUSTERREFRESH MATERIALIZED VIEWINDEXALTER SYSTEM

备份和导出管理
PostgreSQL 17 引入了使用 执行增量备份的功能pg_basebackup,并添加了一个新的实用程序,称为pg_combinebackup,用作备份恢复过程的一部分。此版本为 添加了一个新的标志,称为pg_dump,–filter可让您指定一个文件,其中包含有关从转储中包含/排除哪些对象的说明。

监控
该EXPLAIN命令提供有关查询计划和执行的信息,并添加了两个新选项:SERIALIZE,显示将数据转换为网络传输所需的时间,以及MEMORY,报告优化器内存使用情况。此外,EXPLAIN现在可以显示 I/O 块读取和写入所花费的时间。

CALLPostgreSQL 17 规范化了中的参数pg_stat_statements,减少了频繁调用的存储过程的条目数。此外,VACUUM进度报告现在显示清理索引的进度。PostgreSQL 17 还引入了一个新视图,pg_wait_events它提供有关等待事件的描述,并且可以与 结合使用pg_stat_activity以更深入地了解活动会话等待的原因。此外,pg_stat_bgwriter视图中的某些信息现在被拆分到新pg_stat_checkpointer视图中。

附加功能

PostgreSQL 17 中添加了许多其他新功能和改进。其中许多功能可能对您的用例也有帮助。请参阅 发行说明以获取新功能和更改功能的完整列表:

https://www.postgresql.org/docs/17/release-17.html

测试错误和兼容性

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

PostgreSQL wiki 中公开提供了 未解决问题列表。您可以使用 PostgreSQL 网站上的此表单报告错误:

https://www.postgresql.org/account/submitbug/

Beta 计划

这是版本 17 的第一个 Beta 版本。PostgreSQL 项目将根据测试需要发布其他 Beta 版本,然后发布一个或多个候选版本,直到 2024 年 9 月/10 月左右发布最终版本。有关更多信息,请参阅Beta 测试 页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/742692.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

标准立项 | 湖库沉积物微生物多样性监测规程

饮用水水源地保护是饮用水安全保障中最重要的一个环节,其水质状况直接关系到供水区人民群众的身体健康。我国水资源存在水质差、资源短缺、资源时间空间分布不合理等问题。而近些年由水源地污染引发的饮用水安全事件,给居民的生产生活造成一定程度的影响…

Linux环境下安装MySQL5.7.33(RPM方式安装)

📣📣📣 哈喽!大家好,本专栏主要发表mysql实战的文章,文章主要包括: 各版本数据库的安装、备份和恢复,性能优化等内容的学习。。 📣 ***如果需要观看配套视频的小伙伴们,请…

智慧校园-实习管理系统总体概述

智慧校园实习管理系统是专为高校、企业和学生设计的一体化数字解决方案,它革新了传统实习管理的方式,通过科技手段促进了实习资源的高效对接与管理。该系统整合了实习信息发布、申请管理、过程监督、评估反馈等多个核心环节,构建了一个无缝连…

关于docker存储overlay2相关问题

报错如下: 报错原因:使用rm -rf 清理overlay2导致的,非正常清理。 正常清理命令如下: # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…

重点!业内分享:如何找到自己门店的生鲜经营定位

说到经营生鲜品类 许多商超人士或许都会面临这样一个困境 即品类繁多且复杂,那么如何做到精准施策? 比如说,蔬菜和水果虽都归为生鲜,然而细分起来,价格和消费群体均存在差异。像蔬菜,价格通常较低&#…

2011-2022年 全国省级-农业绿色全要素生产率数据

农业绿色全要素生产率(Green Total Factor Productivity in Agriculture,简称GTFP-A)是一个重要的指标,它不仅衡量了农业部门的生产效率,还考虑了环境的可持续性与资源的利用效率。GTFP-A反映了农业生产过程中各种投入…

mprpc框架基础类的设计

目录 1.回顾 2.主函数书写 3.框架设计 3.1 mprpcapplication.h 3.2 rpcprovider.h 3.3 mprpcapplication.cc 3.4 mprpcprovider.cc 1.回顾 mprpc框架怎么用? 在上一节,我们完成了如何把本地服务发布成RPC服务。 我们打开example下callee下的users…

OpenAI突然宣布停止向中国提供API服务!套壳站不禁用国内IP访问,OpenAI将封禁API Key?意料之中还是意外之外?

关于猫头虎 大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评测图文、产品使用体验图文、产品优点推广文稿、产品横测对比文…

Java开发-实际工作经验和技巧-0002-Xshell中个人认为最实用的功能没有之一

Java开发-实际工作经验和技巧-0002-Xshell中个人认为最实用的功能没有之一 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯技…

基于决策树的旋转机械故障诊断(Python)

前置文章: 将一维机械振动信号构造为训练集和测试集(Python) https://mp.weixin.qq.com/s/DTKjBo6_WAQ7bUPZEdB1TA 旋转机械振动信号特征提取(Python) https://mp.weixin.qq.com/s/VwvzTzE-pacxqb9rs8hEVw import…

一键设置水印,全面护航:跨境平台产品刊登新功能上线

一、Allegro、OZON、Coupang、Cdiscount、Wish、Temu、Walmart、OnBuy、TikTok、Wildberries平台新增产品刊登支持设置水印。 【普通水印】直接跳转到添加水印页面,勾选所要的图片,点击确定,自动替换原图。 【管理水印】直接跳转到水印模版页…

时钟的抖动(Jitter)与偏移(Skew)

时钟的抖动(Jitter)与偏移(Skew)是数字系统时序分析中的两个重要概念,它们对系统的性能和稳定性有着显著的影响。以下是关于时钟抖动和偏移的详细解释: 时钟抖动(Jitter) 定义&…

solidity智能合约如何实现跨合约调用函数

背景 比如现在有一个需求、我需要通过外部合约获取BRC20 token的总交易量。那么我需要在brc20的转账函数里面做一些调整,主要是两个函数内统计转移量。然后再提供外部获取函数。 /*** dev Sets amount as the allowance of spender over the callers tokens.** Ret…

echarts+vue2实战(二)

目录 一、WebSocket【双向通信】的使用 1.1、前端 1.2、后端 二、前端组件的合并与优化 三、全屏切换 3.1、单页面切换 3.2、同页面多端联动 四、主题切换 4.1、单页面切换 4.2、同页面多端联动 一、WebSocket【双向通信】的使用 1.1、前端 在utils文件夹里创建soc…

工程化视角的 Kotlin Multiplatform核心解读及优化

本篇为KMP技术的技术及实践系列文章的第二篇。在这篇技术文章中我们会以百人移动研发团队的工程化视角,探讨Kotlin Multiplatform的核心技术及优化。 Kotlin: 语言与编译 人们在用自然语言沟通时,内容可以不明确,甚至小的错误,而听…

探索 PrimeVue——开源项目的卓越之旅

嗨,大家好,我是徐小夕。之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如: H5-Dooring(页面可视化搭建平台)V6.Dooring(可视化大屏搭…

代码随想录——摆动序列(Leetcode376)

题目链接 贪心 class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length < 1){return nums.length;}// 当前一对差值int cur 0;// 前一对差值int pre 0;// 峰值个数int res 1;for(int i 0; i < nums.length - 1; i){cur nums[i 1] - nums[i];i…

生命在于学习——Python人工智能原理(4.5)

三、Python的数据类型 3.2 Python的组合数据类型 3.2.4 字典-映射类型 映射类型是键-值数据项的组合&#xff0c;每一个元素都是一个键-值对&#xff0c;即元素是&#xff08;key&#xff0c;value&#xff09;&#xff0c;元素之间是无序的&#xff0c;键-值对&#xff08;…

程序员日志之DNF手游20240620罗特斯普通团本和剑魂阿修罗

目录 传送门正文日志1、概要2、升级参考3、搬砖攻略4、散装史诗攻略5、关于团本 传送门 SpringMVC的源码解析&#xff08;精品&#xff09; Spring6的源码解析&#xff08;精品&#xff09; SpringBoot3框架&#xff08;精品&#xff09; MyBatis框架&#xff08;精品&#xf…

[深度学习]循环神经网络RNN

RNN&#xff08;Recurrent Neural Network&#xff0c;即循环神经网络&#xff09;是一类用于处理序列数据的神经网络&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;、时间序列预测、语音识别等领域。与传统的前馈神经网络不同&#xff0c;RNN具有循环结构&am…