PostgreSQL 18 发布
PostgreSQL 全球开发组宣布最新版本 PostgreSQL 18 正式发布。
PostgreSQL 18通过全新的I/O 子系统提升了各种规模工作负载的性能,在从存储读取数据时实现了高达3 倍的性能提升,并增加了可使用索引的查询数量。该版本降低了主版本升级的影响,加速了升级速度,并缩短了升级完成后达到预期性能所需的时间。开发者也能从PostgreSQL 18的功能中获益,包括可在查询时动态计算值的虚拟生成列,以及提升数据库易用性并能为UUID提供更优索引和读取性能的 uuidv7() 函数。PostgreSQL 18 支持OAuth 2.0 身份验证,使其更易于与单点登录(SSO)系统集成。
PostgreSQL核心团队成员Jonathan Katz 表示,“全球开源社区的共同努力铸就了每一次PostgreSQL 版本的发布,并持续带来符合用户数据场景的功能。PostgreSQL 18 延续了该项目长久以来提供可靠、稳健数据管理体验的深厚传统,并进一步扩展了其可支持的工作负载范围。”
PostgreSQL是一个创新的数据管理系统,以其可靠性和健壮性著称,得益于全球开发者社区近30年的开源开发,已经成为各种规模组织的首选开源关系型数据库。
异步I/O 简介
PostgreSQL此前依赖操作系统的预读机制来加速数据检索。然而,操作系统无法感知数据库特有的访问模式,难以准确预测所需数据,导致在许多工作负载场景下性能欠佳。
PostgreSQL 18引入了新的异步I/O (AIO) 子系统来解决这一局限。AIO 允许PostgreSQL 并发地发出多个I/O 请求,而不是等待每个请求顺序完成,从而增强了现有的预读能力并提高整体吞吐量。PostgreSQL 18 支持的AIO 操作包括顺序扫描、位图堆扫描和清理(VACUUM)。基准测试显示,在某些场景下性能提升高达3 倍。
新的io_method参数允许用户在 worker 和 io_uring 等AIO 方法之间切换,也可以通过设置 sync 参数保持PostgreSQL 现有行为。AIO 带来了更丰富的调优维度,详细配置请参考官方文档。
升级提速且性能跃升
PostgreSQL的一项关键特性是生成并存储统计信息,有助于PostgreSQL 选择最优的查询计划。在PostgreSQL 18 之前,这些统计信息无法在主版本升级过程中保留,导致高负载系统在ANALYZE完成前查询性能骤降。PostgreSQL 18 引入了在主版本升级时保留规划器统计信息的能力,这有助于升级后的集群更快地达到预期性能。
此外,主版本升级工具pg_upgrade在PostgreSQL 18 中迎来多项增强,例如当数据库包含大量表和序列等对象时,升级速度显著提升。此版本还支持通过 --jobs 参数配置并行检查,并新增了 --swap 参数,通过直接交换升级目录的方式替代原有的复制、克隆或链接文件操作。
查询与整体性能提升
PostgreSQL 18通过一系列能自动提升工作负载速度的功能,进一步提升了查询性能。此版本引入了对多列 B-tree 索引上的“跳跃扫描”查找,可缩短在查询中省略一个或多个前缀索引列等值(=)条件时的执行时间。它还可以优化 WHERE 子句中使用 OR 条件的查询,使其有效利用索引,大幅提升执行速度。此外,PostgreSQL 对表连接的执行计划和处理进行了多项改进,包括提升哈希连接性能、允许合并连接使用增量排序等。PostgreSQL 18 还支持GIN 索引的并行构建,与B-tree 和BRIN 索引索引一样具备该能力。
该版本还进一步增强了PostgreSQL 对硬件加速的支持,包括为 popcount 函数添加对ARM NEON 和SVE CPU 内置指令集的支持,该函数被bit_count和其他内部功能使用。
提升开发者体验
PostgreSQL 18引入了虚拟生成列,其数值在查询时实时计算而非直接存储,现已成为生成列的默认选项。此外,存储型生成列现已支持逻辑复制。
该版本新增了在RETURNING 子句中同时访问修改前(OLD)与当前(NEW)数值的能力,适用于 INSERT、UPDATE、DELETE 和 MERGE 命令。PostgreSQL 18 还通过uuidv7()函数新增了UUIDv7 生成功能,可生成按时间戳排序的随机UUID,有助于优化缓存策略。uuidv4()也作为 gen_random_uuid() 的别名被引入到PostgreSQL 18 。
PostgreSQL 18新增了对时间范围约束的支持:通过 WITHOUT OVERLAPS 子句,可在主键(PRIMARY KEY)和唯一(UNIQUE)约束中定义不重叠的范围;通过PERIOD 子句,可为外键(FOREIGN KEY)约束定义时间区间关系。
最后,PostgreSQL 18引入了CREATE FOREIGN TABLE ... LIKE命令,可依据本地表的定义更便捷地创建外部表的模式结构。
文本处理增强
PostgreSQL 18通过多项新特性使文本处理更简单、更快速。此版本新增了PG_UNICODE_FAST排序规则,该规则在提供完整的Unicode大小写转换语义的同时,显著提升了多种比较操作的性能,涵盖 upper 和 lower 字符串比较函数,以及用于大小写不敏感比较的新casefold函数。此外,PostgreSQL 18 现在支持对使用非确定性排序规则的文本进行 LIKE 比较,简化了复杂模式匹配的实现。本版本还调整了全文检索的实现机制,使其采用数据库集群的默认排序提供程序,而非始终依赖libc,这一变化可能导致在运行pg_upgrade后,需要为所有全文检索及pg_trgm索引执行重建操作。
复制
PostgreSQL 18支持在日志和pg_stat_subscription_stats视图中报告逻辑复制写入冲突。此外,CREATE SUBSCRIPTION现默认使用并行流式方式来应用事务,有助于提升复制性能。pg_createsubscriber工具新增了 --all 参数,可以通过一条命令为实例中的所有数据库创建逻辑副本。PostgreSQL 18 持自动删除空闲复制槽,避免在发布服务器上积压过多WAL日志。
维护与可观测性
PostgreSQL 18改进了vacuum策略,通过在常规vacuum 期间主动冻结更多页面来减少开销,并在需要激进清理的情况下提供了帮助。
PostgreSQL 18为EXPLAIN命令提供了更详细的执行信息,自此版本起,在执行 EXPLAIN ANALYZE 时会自动显示访问的缓冲区数量(数据存储的基本单位)。此外,EXPLAIN ANALYZE 现在会显示索引扫描期间发生的索引查找次数,而 EXPLAIN ANALYZE VERBOSE 则会包含CPU、WAL 和平均读取统计信息。PostgreSQL 18 还在pg_stat_all_tables视图增加了有关VACUUM 及相关操作耗时统计,以及按连接统计的I/O 和WAL 使用情况数据。
其他重要变更
通过PostgreSQL 18 initdb初始化的数据库, 现在默认启用页校验和(page checksums)。这会影响从未启用校验和的集群升级,在使用pg_upgrade时需要使用 --no-data-checksums 参数创建一个新的PostgreSQL 18 集群。
PostgreSQL 18推出了新版(3.2)的PostgreSQL通信协议,这是自2003年PostgreSQL 7.4发布以来的首个重大更新。目前,libpq库仍默认使用3.0版本协议,而客户端工具(如驱动程序、连接池、代理服务器等)将逐步增加对新协议版本的支持。
其他功能
PostgreSQL 18还新增了许多其他新功能和改进,这些可能对您的使用场景有所帮助。请查看发布说明,以获取完整的新功能和更改列表。
 关注公众号
关注公众号
					低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 
							
								
								    上一篇
								      微语 0.9.8 发布 - 智能工单系统企业级多租户团队协作工具,免费开源N件套:企业IM、在线客服、企业知识库/帮助文档、客户之声、工单系统、AI对话、工作流、呼叫中心、视频客服、开放平台。 语言 English 中文 管理端 多渠道 客服端 介绍 企业IM 局域网即时通讯 企业成员管理 聊天记录监控 ... 全渠道客服 多渠道接入 人工客服 客服Agent智能体,对接自有数据,自动执行操作 ... 知识库 对接大模型 自定义知识库 Function Calling Mcp ... 工单系统 工单管理 工单SLA管理 工单统计和报表 ... AI Agent Ollama/DeepSeek/ZhipuAI/... 智能体 工作流 ... 工作流 自定义表单 自定义流程 工单流程可视化 ... 客户之声 意见反馈 服务投诉 问卷调查 ... 呼叫中心 基于FreeSwitch的专业呼叫平台 支持来电弹屏、自动分配、通话录音 数据统计,语音与文字服务无缝集成 视频客服 基于WebRTC技术的高清视频通话 支持一键视频对话与屏幕共享 适用于需要直观展示的服务场景 开放平台 提供完整的RESTful API接口和SDK工具包 支持... 
- 
							
								
								    下一篇
								      VASSAL Engine 3.7.18 发布,开源棋牌游戏构建引擎VASSAL Engine3.7.18 版本现已发布。VASSAL 是一个游戏引擎,用于在线构建棋盘游戏和纸牌游戏,构建的游戏可在 Internet 上或通过电子邮件实时运行。VASSAL Engine 可在所有平台上运行,并且是免费的开源软件。具体更新内容包括: IMPORTANT 如果你使用的是 MacOS 14,请确保你使用的是 14.4 或更高版本,以避免 MacOS 中存在的一个 bug 导致 Vassal 无法启动。 早期版本的 Vassal 无法打开 3.7 中保存的模块。官方建议用户保留计划在 3.7 中修改的任何 3.7 之前的模块的备份副本。 以前有用的东西可能会被破坏。建议用户报告所发现的 bug。 自 3.7.17 以来的变化 新功能 14244:构建 Debian 软件包 错误修复 14243:添加缺少的默认Wizard sidebar image 14065:从国际化的 Dice Summary 字符串中删除空格字符 14013:修复回合计数器显示隐藏列表项的问题 13584:Decks 有时会在最上面的牌下面显示错误的牌 12924:报告格式插入功能选择所... 
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- 面试大杂烩
- Red5直播服务器,属于Java语言的直播服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL表碎片整理

 
			 
				 
				 
				 
				 
				 
				 
				



 微信收款码
微信收款码 支付宝收款码
支付宝收款码