PostgreSQL 17 Beta 1 发布!

news2024/11/24 17:27:45

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 测试 页面。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt+opencv】编译、配置opencv

文章目录 前言下载opencv编译opencvmingw版本 总结 前言 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它包含了超过2500个优化的算法。这些算法可以用来检测和识别面部,识别对象&#x…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-47转置卷积

47转置卷积 import torch from torch import nn from d2l import torch as d2l# 输入矩阵X和卷积核矩阵K实现基本的转置卷积运算 def trans_conv(X, K):h, w K.shapeY torch.zeros((X.shape[0] h - 1, X.shape[1] w - 1))for i in range(X.shape[0]):for j in range(X.shap…

Python_Socket

Python Socket socket 是通讯中的一种方式,主要用来处理客户端与伺服器端之串连,只需要protocol、IP、Port三项目即可进行网路串连。 Python套件 import socketsocket 常用函式 socket.socket([family], [type] , [proto] ) family: 串接的类型可分为…

pdf怎么转换成jpg,本地转换还是在线转换?

PDF(Portable Document Format)和JPG(Joint Photographic Experts Group)这两种文件格式在我们的日常生活和工作中扮演着举足轻重的角色。PDF因其跨平台、保持原样性强的特点,被广泛应用于文件传输和存储;而…

快速修复mfc100u.dll丢失解决方案

相连文章:SecureCRT的安装破解 [详细过程2024] 有小伙伴向我反馈在打开SecureFX注册机之后显示【mfc100u.dll找不到】重装之后也没有用,这个是因为Microsoft Visual C的运行时组件和库出现了错误,直接选择重新安装就可以 出现这种情况的原因…

识图生成代码:通义千问vsGPt4o,有点小崩

今日对比一下通义千问和GPt4o,在通过识别图片然后去生成前端代码 在当今ai的时代,通过ai去生成页面的代码可以很大的提高我们的开发效率下面是我们要求的生成的图片截图,这是掘金的榜单 效果对比 首先我们使用通义千问,让他去帮我…

LabVIEW在机器人研究所中的应用

机器人研究所致力于机器人技术的研究与开发,涵盖工业机器人、服务机器人、医疗机器人等多个领域。研究所需要一个高效、灵活的实验控制和数据采集系统,以进行复杂的机器人实验,并对实验数据进行实时处理和分析。 项目需求 实时控制与监控&am…

Linux中使用网络文件系统NFS挂载远程目录,对远程文件的本地化操作

目录 一、NFS及其在linux系统中的挂载 1、NFS概述 2、NFS挂载及其作用 (1)资源共享 (2)简化数据管理 (3)提高数据可用性 (4)灵活性 (5)访问控制 &am…

ctfshow-web入门-命令执行(web56、web57、web58)

目录 1、web56 2、web57 3、web58 1、web56 命令执行&#xff0c;需要严格的过滤 新增过滤数字&#xff0c;只能采用上一题临时文件上传的方法&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

C语言学习记录(十二)——指针与数组及字符串

文章目录 前言一、指针和数组二、指针和二维数组**行指针(数组指针)** 三、 字符指针和字符串四、指针数组 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、指针和数组 在C语言中 &#xff0…

RHCE四---web服务器的高级优化方案

一、Web服务器&#xff08;2&#xff09; 基于https协议的静态网站 概念解释 HTTPS&#xff08;全称&#xff1a;Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure&#xff0c;超文本传输安全协议&#xff09;&#xff0c;是以…

​Chrome插件:Postman Interceptor 调试的终极利器

今天给大家介绍一款非常实用的工具——Postman Interceptor。 这个工具可以捕捉任何网站的请求&#xff0c;并将其发送到Postman客户端。 对于经常和API打交道的程序员来说&#xff0c;Postman Interceptor真的是神器级别的存在。 下面就让我详细说说这个插件怎么用&#xf…

操作系统-文件的物理结构(文件分配方式)

文章目录 总览文件块和磁盘块连续分配顺序访问直接访问&#xff08;随机访问&#xff09;为什么连续分配同时支持这两种访问模式&#xff1f; 链接分配隐式链接显示链接小结索引分配链接方案多层索引混合索引小结 总结 总览 文件数据存放在外存中 文件块和磁盘块 文件内通过逻…

pbootcms后台获取前端表单留言页面url

pbootcms在线留言表单&#xff0c;用户在网页前端提交表单成功后&#xff0c;在网站后台如何获取表单留言页面的url这个参数呢&#xff1f;下面举例说明&#xff1a;首先&#xff0c;我们在PBootcms后台对应的表单&#xff0c;添加需要记录的表单字段&#xff0c;例如 添加liuy…

仓库管理系统19--盘存管理

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、什么是盘存 盘存也叫盘库&#xff0c;盘库是指对一个仓库、库房或者商店的库存进行全面清点和核对的过程。在盘库过程中&am…

UE5(c++)demo开发日志(1):Actor类添加

工具---新建c类---选用Actor&#xff0c;创造出头文件(.h&#xff0c;用于声明变量、函数、重写父类函数等)和源文件(.cpp&#xff0c;涉及到具体功能实现)&#xff0c;客户端界面成功显示出来新建类&#xff1a; Actor头文件默认方法简介&#xff1a; UCLASS(): ue提供的宏&a…

Kotlin中对空的很多处理

代码图片直观效果 逐行解释Kotlin中对空的各种情况的使用 private fun testNull() {val flag 1var name: String? nullvar user: User? // 有警告, 因为下面的赋值可以和这一行定义合并var zhangUser: User? User()var wangUser: User User() // 提示Explicitly given t…

STC89C52RC单片机设计的FM收音机+自动搜台+存储电台(程序+原理图+PCB)

资料下载地址&#xff1a;STC89C52RC单片机设计的FM收音机自动搜台存储电台&#xff08;程序原理图PCB) 1、实物图 2、部分程序 #include <reg52.h> #include "tea5767.h" #include "delay.h" #include "lcd1602.h" //K1:上一台 K2:下一…

如何快速使用JNI

文章目录 1_JNI是什么&#xff1f;2_使用3_扩展 1_JNI是什么&#xff1f; JNI 是Java Native Interface的缩写&#xff0c;通过JNI&#xff0c;允许Java代码与其他语言&#xff08;通常是C或C&#xff09;编写的本地应用程序或库进行交互。简而言之就是&#xff0c;Java可以通…

【王佩丰 Excel 基础教程】第一讲:认识Excel

文章目录 前言一、Excel软件简介1.1、历史上的其他数据处理软件与 Microsoft Excel1.2、Microsoft Excel 能做些什么1.3、Excel 界面介绍 二、Microsoft Excel 的一些重要概念2.1、Microsoft Excel 的几种常见文件类型2.2、工作簿、工作表、单元格. 三、使用小工具&#xff1a;…