当前位置: 首页 > backend >正文

PostgreSQL 18 Beta 1发布,有哪些功能亮点?

PostgreSQL 全球开发组于 2025 年 5 月 8 日发布了第一个 PostgreSQL 18 Beta 版本,现已开放下载。虽然细节可能会有所改变,但是该版本包含了 PostgreSQL 18 最终正式版中所有新功能的预览。

以下是 PostgreSQL 18 引入的部分关键功能亮点。

性能优化

  • 异步 I/O(AIO),通过全新的异步 I/O 子系统提升 I/O 吞吐量并隐藏延迟。Linux 系统可使用 io_uring,其他平台则提供基于“工作线程”的通用实现。当前支持顺序扫描、位图堆扫描和 VACUUM 操作的异步文件读取,测试显示性能提升达 2-3 倍。
  • 查询优化,PostgreSQL 18 支持多列 B-Tree 索引 Skip Scan 优化,可以加速缺少前缀列“=”条件的查询;新版本还改进了对 WHERE 子句中 OR 或 IN (…) 条件的索引利用,提升查询性能;hash join 整体性能提升,merge join 支持增量排序。
  • 并行索引构建,支持 GIN 索引的并行构建,通常用于 JSON 和全文搜索场景。
  • 分区表与锁定优化,改进了分区表查询的修剪效率及连接支持,以及多表查询时的锁定开销,提升高并发场景性能。
  • 文本处理优化,提升了文本数据的处理性能,包括 upper/lower 函数性能提升以及一个新的内置排序规则 PG_UNICODE_FAST。

版本升级

  • 优化器统计信息保留,主版本升级后(例如 PostgreSQL 17 升级到 PostgreSQL 18),自动保留统计信息,无需手动执行 ANALYZE,缩短性能恢复时间。
  • pg_upgrade 工具增强,支持并行检查(通过 --jobs 参数),加速包含大量表或序列的版本升级;新增 --swap 标志,通过交换目录而非复制或链接文件加速升级流程。

开发体验

  • 虚拟生成列,PostgreSQL 18 版本的生成列(Generated Columns)默认支持“virtual”模式,只在执行查询时动态计算字段值,无需占用存储;另外,存储式生成列可以支持逻辑复制。
  • RETURNING 子句扩展,INSERT、UPDATE、DELETE 和 MERGE 命令的 RETURNING 子句支持同时访问旧值(OLD)和新值(NEW)。
  • UUIDv7,新增 uuidv7() 函数生成时间戳有序的 UUID,优化缓存策略;同时新增 uuidv4() 作为 gen_rand_uuid 的别名。
  • 模式匹配增强,支持对非确定性排序规则的文本进行 LIKE 匹配,新增 CASEFOLD 函数用于大小写不敏感的匹配。
  • 约束增强,主键和唯一约束支持“无重叠”的时间范围约束(WITHOUT OVERLAPS),外键支持 PERIOD 子句。

安全特性

  • OAuth 认证,支持通过扩展实现 OAuth 2.0 认证机制。
  • FIPS 模式与 TLS 1.3,新增 FIPS 模式验证与强制功能;支持通过 ssl_tls13_ciphers 配置 TLS 1.3 加密套件。
  • SCRAM 默认认证,PostgreSQL 18 开始弃用 md5 密码认证,全面转向 SCRAM,未来版本将彻底移除 md5 认证;postgres_fdw 和 dblink 支持 SCRAM 透传认证访问远程 PostgreSQL 实例。

可观测性

  • EXPLAIN 增强,EXPLAIN ANALYZE 自动显示缓冲区访问次数及索引查找次数;EXPLAIN ANALYZE VERBOSE 新增 CPU、WAL 及平均读取统计信息。
  • 统计视图扩展,pg_stat_all_tables 新增表级 VACUUM 和分析耗时统计;新增连接级 I/O 和 WAL 使用统计;逻辑复制冲突信息记录至日志及 pg_stat_subscription_stats 视图。

其他亮点

  • 默认启用数据校验和,PostgreSQL 18 开始的新集群默认启用数据校验和功能,可通过 initdb --no-data-checksums 禁用。
  • 约束功能增强,外键和检查约束支持 NOT ENFORCED 以及 ENFORCED 属性;NOT NULL 约束支持自定义名称,更加符合 SQL 标准; 同时还支持 NOT VALID 和 NO INHERIT 子句,与继承功能一致。
  • pg_createsubscriber,新增 --all 标志,支持一键为实例中所有数据库创建逻辑副本。
  • 外部表定义,新增 CREATE FOREIGN TABLE … LIKE 命令,可以基于本地表定义创建外部表。
  • PostgreSQL 协议,推出新版 PostgreSQL 3.2 版本总线协议,libpq 仍然使用 3.0 协议,客户端驱动增加了新协议支持。

更多特性

除了以上内容,PostgreSQL 18 还增加了大量的新功能和改进,完整的新特性列表可以参考官方的发行说明:

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

PostgreSQL 18 正式版计划将于 2025 年 9 月左右发布。

http://www.xdnf.cn/news/4950.html

相关文章:

  • P2572 [SCOI2010] 序列操作 Solution
  • Shell 脚本编程详细指南:第五章 - 函数与参数传递
  • ROS1 和 ROS2 在同一个系统中使用
  • 分布式ID设计 数据库主键自增
  • 第423题-有效的括号序列
  • 大模型——Trae IDE 指南:轻松配置自定义 AI 规则 (Trae Rules)
  • 阅文集团C++面试题及参考答案
  • 服务器配置错误导致SSL/TLS出现安全漏洞,如何进行排查?
  • 汽车制造行业的数字化转型
  • 华为云Flexus+DeepSeek征文|从开通到应用:华为云DeepSeek-V3/R1商用服务深度体验
  • 【软件设计师:存储】16.计算机存储系统
  • gitlab相关面试题及答案
  • 深入了解 Stable Diffusion:AI 图像生成的奥秘
  • 【论文阅读】——Articulate AnyMesh: Open-Vocabulary 3D Articulated Objects Modeling
  • 聚焦车辆模式管理:概念阐释、测试方案设计与实施
  • 代码随想录第40天:图论1
  • Vue3.5 企业级管理系统实战(十八):用户管理
  • 回顾 Vue 3 基础【Plan - May - Week 1】
  • 零基础学Java——第十一章:实战项目 - 控制台应用开发
  • 力扣-2.两数相加
  • WPF内嵌其他进程的窗口
  • 鸿蒙NEXT开发动画案例5
  • tomcat6性能优化
  • MySQL 数据库操作
  • uniapp小程序轮播图高度自适应优化详解
  • 使用Python 打造多格式文件预览工具 — 图、PDF、Word、Excel 一站式查看
  • Java SE(10)——抽象类接口
  • 高效C/C++之十:Coverity修复问题:尽量多使用 c++强制类型转化
  • 人工智能之数学基础:二次型
  • 内网渗透——红日靶场三