PostgreSQL 15 发布,改进排序性能、添加 MERGE 命令...
PostgreSQL 15 已发布,此版本在本地管理和分布式部署中的工作负载方面有明显的优化,包括改进的排序性能。此版本还添加了流行的 MERGE 命令、启用 Zstd 和 LZ4 压缩支持,以及更多用于观察/调整数据库状态的功能。
改进的排序性能和压缩
- 在最新版本中,PostgreSQL 改进了其内存和磁盘上的排序算法。测试基准显示:根据不同的数据类型,此次排序优化大概可加速 25% - 400%。
- 在 PostgreSQL 15 中,使用 row_number()、rank()、dense_rank()和count()as 窗口函数也具有性能优势。
- 使用 SELECT DISTINCT 的查询可以并行执行。
- PostgreSQL 15 添加了对 LZ4 和 Zstandard (zstd) 压缩到预写日志 (WAL) 文件的支持,对于某些工作负载可以同时具有空间和性能优势。
- 在某些操作系统上,PostgreSQL 15 增加了对 WAL 中引用的预取页面的支持。
- PostgreSQL 的内置备份命令 pg_basebackup 现在支持备份文件的服务器端压缩,可选择 gzip、LZ4 和 zstd 等压缩方法。
- PostgreSQL 15 拥有使用自定义模块进行归档的能力,消除了使用 shell 命令的开销。
新的开发者功能
- PostgreSQL 15 包含 SQL 标准 MERGE 命令。MERGE 允许编写条件 SQL 语句,这些语句可以在单个语句中包含 INSERT、UPDATE 和 DELETE 操作。
- PostgreSQL 15 还增加了使用正则表达式检查字符串的新函数:regexp_count()、regexp_instr()、regexp_like() 和 regexp_substr()。
- PostgreSQL 15 还扩展了 range_agg 函数,可聚合多范围数据类型。
- PostgreSQL 15 允许用户使用调用者(view caller)来创建查询数据的视图,而不是视图创建者的权限。这个选项称为 security_invoker,它增加了一个额外的保护层,以确保视图调用者拥有处理底层数据的正确权限。
更多逻辑复制选项
PostgreSQL 15为管理逻辑复制提供了更大的灵活性。
- 这个版本为发布者引入了行筛选和列列表,允许用户选择从表中复制数据的子集。
- PostgreSQL 15增加了简化冲突管理的功能,包括跳过重播冲突事务的能力,以及在检测到错误时自动禁用订阅的能力。
- 该版本还支持在逻辑复制中使用两阶段提交(2PC)。
日志和配置增强
- PostgreSQL 15 引入了一种新的日志格式:jsonlog。这种新格式使用定义的 JSON 结构输出日志数据,允许在结构化日志系统中处理 PostgreSQL 日志。
- 在用户管理 PostgreSQL 配置方面,PostgreSQL 15 版本为数据库管理员提供了更大的灵活性,增加了向用户授予更改服务器级配置参数的权限的能力。
- 此外,用户现在可以使用 psql 命令行工具中的 \dconfig 命令搜索有关配置的信息。
其他变化
- PostgreSQL 15 使 ICU 排序规则成为集群或单个数据库的默认排序规则成为一种可能。
- 该版本添加了一个新的内置扩展 pg_walinspect,它允许用户直接从 SQL 接口检查预写日志文件的内容。
- PostgreSQL 15 还从公共(或默认)模式的所有用户(数据库所有者之外)撤销 CREATE 权限。
- PostgreSQL 15 从 PL/Python 包中删除了长期被弃用的“独占备份”模式和对 Python 2 的支持。
更新公告:https://www.postgresql.org/about/news/postgresql-15-released-2526/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OpenProject 12.3 发布,项目管理系统
OpenProject 是一个基于网络的项目管理系统,用于不受地点限制的团队协作,分为免费开源的社区版和收费的企业版。该项目的开发工作主要由 OpenProject GmbH 完成。 这个版本极大地改善了工作包的调度,因此将节省大量的时间,使调度更加准确。 全局工作周的引入 OpenProject 12.3 为管理员提供了在整体实例级别上指定工作日和非工作日的功能,从而定义一个全局工作周。 这有助于创建更准确的项目时间表,避免工作的开始或结束日期被设定在周末。非工作日在日历中显示为灰色,工作不能被安排在这些天开始或结束。非工作日的默认值被设置为星期六和星期日,但你可以根据需要设置。 期限 OpenProject 12.3 引入了工作的期限。通过使用新的期限字段,可以更快地安排你的工作。 你可以为一个工作定义一个开始日期,输入以工作日为单位的持续时间,完成日期将被自动设置。另外,你可以输入持续时间和结束日期,开始日期将被设置。在所有情况下,工期与开始和结束日期是一致的。更新日期将更新持续时间,而更新持续时间将更新你的完成日期。 日期选择器的升级 随着持续时间的增加和全局工作周的引入,日期...
- 下一篇
Python 3.10.8 发布
Python 3.10.8 现已发布。与此同时,3.7-3.9 中也进行了一些修复,因此同一时间共发布了 Python 3.10.8、3.9.15、3.8.15 和 3.7.15 四个版本。 此次的安全更新内容包括: CVE-2022-40674:捆绑的 libexpat 从 2.4.7 升级到 2.4.9,修复了 function doContent 中的 heap use-after-free 漏洞 gh-97616:修复了list *= int中可能出现的缓冲区溢出 gh-97612:修复了get-remote-certificate.py示例脚本中可能的 shell 注入(这个问题最初分配了一个 CVE,其作者撤回了它) gh-96577:修复了msilib中潜在的缓冲区溢出 作为一个在计划外安全版本发布仅一个月后发布的错误修复版本,与一年前发布周期的同一阶段发布的 3.9.8 相比,3.10.8 要稍微小一些。3.10.8 有 151 个 commit,而 3.9 则有 204 个。不过它仍然是一个比 3.10.7(113 个 commit)更大的版本。 更多详情可查看cha...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境