最新消息:关注人工智能 AI赋能新媒体运营

开源数据库PostgreSQL 18引入异步I/O,读取性能最高可达3倍

科技智能 admin 浏览

PostgreSQL开发团队正式发布PostgreSQL 18,这个版本引入异步I/O(AIO)功能,解决过去依赖操作系统预读机制的限制,让数据库能同时发出多笔读取请求而非逐一等待。根据官方测试,特定情境下的读取性能可提升至最高3倍,涵盖顺序扫描(Sequential Scan)、Bitmap堆扫描(Bitmap Heap Scan)以及清理作业(Vacuum)等常见操作,对以读取为主的工作负载带来明显的性能改善。

除了性能提升,PostgreSQL 18在重大版本升级流程也做出实质调整。新版本可保留查询计划器统计资料,使集群在升级完成后更快恢复预期性能,避免过去需等待ANALYZE指令重新收集统计造成的性能波动。升级工具pg_upgrade也获得多项强化,包括通过--jobs参数进行并行检查,以及--swap选项以交换目录取代复制或链接文件,缩短切换时间。

PostgreSQL 18引入多列B-tree数据结构的跳跃式扫描(Skip Scan)来优化查询任务,让缺少前缀等值条件的查询仍能利用索引,并改善OR条件的索引化处理。同时,哈希连接(Hash Join)与归并连接(Merge Join)等表连接方法也获得加速,GIN索引则支持并行创建,缩短大规模索引生成所需时间。这些调整让查询性能更具弹性,且无需额外修改应用程序。

开发人员可在该版本使用新的语法与函数。虚拟生成列成为默认选项,避免不必要的数据存储,并支持在查询时计算值。RETURNING子句现在可同时取出旧值与新值,便于审核修改结果。UUID生成函数新增uuidv7(),提供时间序列可排序的标识符,改善索引局部性与读取性能,uuidv4()则成为gen_random_uuid()的别名,整合常用函数调用。

在安全与身份验证方面,PostgreSQL 18引入OAuth 2.0集成,让数据库能更方便地对接单点登录(SSO)机制。密码验证机制逐步淘汰MD5,官方建议改用SCRAM,并新增TLS 1.3密码套件配置。对于跨数据库的验证场景,SCRAM现已可通过远程访问机制postgres_fdw与dblink传递。

PostgreSQL 18增强用户运维与监控能力,清理作业(Vacuum)在日常运行中会更积极冻结页面,以降低后续清理负担。EXPLAIN ANALYZE指令新增更多细节,默认输出缓冲区使用量、索引查询次数,并在VERBOSE模式下显示CPU与日志写入机制WAL相关统计。新的统计数据也涵盖连接级别I/O与WAL使用情况,有助于管理员精确掌握资源消耗。