暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 18发布,快来阿里云PolarDB尝鲜!

120

1


PostgreSQL 18 重磅来袭

2025 年 9 月 25 日,PostgreSQL 社区发布了全新的 18 版本,新的 18 版本带来了一系列新的功能。
PolarDB 也在第一时间支持了 PostgreSQL 新版本,欢迎各位前往 PolarDB 官网购买体验,开通方式参考文章末尾的使用开通说明。

系统级性能提升


PostgreSQL 18 引入了一个异步 I/O 子系统,允许后端异步发送多个读取请求,从而提高顺序扫描、位图堆扫描、清理等操作的效率。这一功能通过新的数据库参数 io_method 控制,并新增了系统视图 pg_aios 来显示用于异步 I/O 的文件句柄。
PostgreSQL 18 改进了查询优化器,包括自动移除不必要的表自连接、将某些 IN (VALUES ...) 转换为 x = ANY ... 来获得更好的优化器统计信息,以及允许将 OR 子句转换为数组来加快索引处理。此外,还改进了 INTERSECT、EXCEPT、窗口聚合和视图列别名的处理速度。
PostgreSQL 18 还增强了索引性能,支持 btree 索引的 Skip Scan,在查询中允许只等式引用多列 btree 索引的非首列。同时,非 btree 唯一索引现在可以作为分区键和物化视图使用。 GIN 索引也能支持并行创建了。
PostgreSQL 18 改进了 VACUUM 和 ANALYZE 的处理。现在允许普通 VACUUM 冻结完全可见的页面,减少后续全表扫描冻结的开销。此外,现在可以使用新的 ONLY 选项让 VACUUM 和 ANALYZE 处理分区表而不处理其子表。

进一步提升开发者体验


PostgreSQL 18 原生支持 UUIDv7 ,UUIDv7 兼顾了全局唯一性和数据库友好的时间有序性。
    -- 生成时间戳排序的UUID
    SELECT uuidv7();
    -- 结果示例:01980de8-ad3d-715c-b739-faf2bb1a7aad


    -- 提取时间戳信息
    SELECT uuid_extract_timestamp(uuidv7());
    -- 结果示例:2025-06-21 10:20:28.549+01
    PostgreSQL 18 默认允许虚拟生成列,虚拟生成列不是在写入时生成值,而是在读取列时生成。此外,RETURNING 现在支持在 DML 查询中使用 OLD/NEW,允许 INSERT/UPDATE/DELETE/MERGE 的 RETURNING 列表显式返回旧值和新值。
    PostgreSQL 18 增强了逻辑复制功能,现在允许生成列的值进行逻辑复制。如果发布指定了列列表,则发布所有指定的列(包括生成列和非生成列)。在没有指定列列表的情况下,发布选项 publish_generated_columns 控制是否发布生成列。
    PostgreSQL 18 还改进了约束处理,允许指定非重叠的 PRIMARY KEY 和 UNIQUE 约束,以及允许 CHECK 和外键约束指定为 NOT ENFORCED。此外,现在可以修改 NOT NULL 约束的继承性。

    高可用环境和主版本升级时的逻辑复制增强功能


    PostgreSQL 18 增强了逻辑复制功能,现在允许生成列的值进行逻辑复制。如果发布指定了列列表,则发布所有指定的列(包括生成列和非生成列)。在没有指定列列表的情况下,发布选项 publish_generated_columns 控制是否发布生成列。
    PostgreSQL 18 修改了逻辑复制的默认行为,CREATE SUBSCRIPTION streaming 选项现在默认为 parallel。此外,ALTER SUBSCRIPTION 现在可以更改复制槽的两阶段提交行为。
    PostgreSQL 18 还增加了对逻辑复制冲突的日志记录,这有助于在应用逻辑复制更改时识别和解决冲突。

    更多安全性和操作管理选项


    PostgreSQL 18 弃用了 MD5 密码认证,CREATE ROLE 和 ALTER ROLE 在设置 MD5 密码时会发出弃用警告。同时添加了对 OAuth 认证方法的支持,包括在 pg_hba.conf 中添加 oauth 认证方法、libpq OAuth 选项,以及数据库参数 oauth_validator_libraries 来加载令牌验证库。
    PostgreSQL 18 还增强了权限管理,添加了函数 pg_get_acl() 来检索数据库访问控制详情,以及函数 has_largeobject_privilege() 来检查大对象权限。此外,ALTER DEFAULT PRIVILEGES 现在支持定义大对象默认权限,并添加了预定义角色 pg_signal_autovacuum_worker 来允许向自动清理工作进程发送信号。

    2


    什么是 PolarDB for PostgreSQL 版

    PolarDB 是阿里巴巴自研的新一代云原生数据库。在计算存储分离架构下,利用了软硬件结合的优势,为您提供具备秒级弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB for PostgreSQL 版(后续简称为PolarDB-PG) 100%兼容原生 PostgreSQL 的多个版本,包括 PostgreSQL 11/14/15/16/17,当然也包括本次发布的 PostgreSQL 18。基于 Cloud Native 设计理念,它既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、快速迭代的优势。
    PolarDB-PG 采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。

    3


    为什么选择使用阿里云 PolarDB-PG 18

    ▶︎ 简单易用
    PolarDB-PG 完全兼容 PostgreSQL,代码/应用无需修改或只需少量修改。
    ▶︎ 自研企业级特性
    PolarDB-PG 18 支持大量自研的特色功能。除了存算分离、一写多读等基本架构层面的改进外,还包含以下功能:
    • 服务端支持 GBK/GB18030 字符集,可以更好地服务于各类对字符集有要求的系统。
    • TDE,透明数据加密功能,可以提供更好的数据安全保障。
    • GPC,全局计划缓存,将查询计划缓存放置在全局内存中,可以减少计划占用的内存。
    • 监控系统,可以监控全链路的 DB 监控,包括存储、CPU、内存等硬件资源,DB 年龄、复制延迟、缓冲层等 DB 资源监控,SQL 等待事件、高频 SQL、慢 SQL 等 SQL 级监控。
    • 此外还有大量在低版本 PolarDB-PG 的企业级功能正在向 18 版本进行移植,包括 Serverless、冷热分层存储、分布式等。
    ▶︎ 丰富的插件生态
    PolarDB-PG 18 首发即支持大量插件,包括:
    • Ganos:阿里云自主研发的一套 时空数据库引擎,它专注于高效存储、管理和分析带有时间和空间维度的大规模数据,广泛应用于智慧城市、交通调度、物联网(IoT)、地理围栏、移动轨迹分析、环境监测等领域。
    • pgvector:把“向量检索”以原生数据类型 + 索引 + 函数的方式无缝嵌入到 PolarDB 中。让传统关系型数据库也能高效执行 K 近邻(KNN)搜索、近似最近邻(ANN)搜索、向量聚类 过滤 相似度 join 等 AI 场景常见操作,而不需要再把数据搬到专门的向量数据库。
    • 包含 hypopg,ip4r,mysql_fdw,pase,pgaudit,pg_bigm,pg_cron,pg_hint_plan,pgjwt,pg_net,pg_similarity,pgsodium,pg_stat_kcache,pgtap,pldebugger,postgres-decoderbufs,prefix,roaringbitmap,sequential_uuids,varbitx,vault,wal2json,zhparser,oss_fdw,tds_fdw,smlar,log_fdw,pg_jieba,oracle_fdw,postgresql-hll 等 30 +个常用插件。
    • 此外还有大量多模(图,数据湖,列存、全文)、时序(timescaledb、ganos_tsdb)、向量、AI ( polar_ai)等插件即将发布。
    ▶︎ 降低成本
    • 计算节点和存储分离:多个计算节点共享存储,新增只读节点时只需支付计算节点费用,大大降低扩容成本。
    • Serverless存储:存储空间无需手动配置,根据数据量自动伸缩,您只需为实际使用的数据库容量付费。
    ▶︎ 极致性能
    • 深度优化数据库内核,使用 PGO、BOLT、LTO、代码段大页等系统级优化手段,提升代码的执行效率。
    • 支持表大小缓存,大幅减少原生 PG 内文件的 open/lseek 操作。
    • 支持批量文件读取、批量文件扩展、批量刷脏,优化 IO 性能,并进行了深入的参数调优,提供了极致性能。
    • 采用物理复制、RDMA高速网络和分布式共享存储,大幅提高性能。
    • 集群包含一个主节点和最多15个只读节点,满足高并发场景对性能的要求,尤其适用于读多写少的场景。
    • 基于共享存储的一写多读集群,数据只需要一次修改,所有节点立即生效。
    • 大幅提升OLTP性能,支持超过50万次/秒的读请求以及超过15万次/秒的写请求。
    ▶︎ 海量存储,支持上百TB级别数据
    采用分布式块存储设计和文件系统,使得存储容量不限制于单节点的规格,能够轻松扩展,单集群支持默认最高500 TB存储空间。
    ▶︎ 高可用和高可靠保障,数据安全可靠
    • 共享分布式存储的设计,彻底解决了主从(Master-Slave)异步复制所带来的备库数据非强一致的缺陷,使得整个数据库集群在应对任何单点故障时,可以保证数据零丢失。
    • 多可用区架构,在多个可用区内都有数据备份,为数据库提供容灾和备份。
    • 集群地址利用LSN(Log Sequence Number)确保读取数据时的全局一致性,避免因为主备延迟引起的不一致。
    • 利用基于Redo的物理复制代替基于Binlog的逻辑复制,提升主备复制的效率和稳定性。即使对大表进行加索引、加字段等DDL操作,也不会造成数据库的延迟。
    • 采用白名单、VPC网络、数据多副本存储等全方位的手段,对数据库访问、存储、管理等各个环节提供安全保障。
    ▶︎ 快速弹性,应对不确定的业务增长
    • 配置升降级,5分钟生效。
    采用容器虚拟化技术和共享的分布式块存储技术,使得数据库服务器的CPU、内存能够快速扩容。
    • 增减节点,5分钟生效。
    通过动态增减节点提升性能或节省成本。通过集群地址屏蔽底层的变化,使应用对增减节点无感知。
    ▶︎ 无锁备份
    利用底层分布式存储的快照技术,只需分钟级别即可完成对上TB数据量大小的数据库的备份,且整个备份过程不需要加锁,效率更高,影响更小。

    4


    使用开通说明

    PolarDB 受益于社区,也积极反哺社区,在 PolarDB 适配社区 PostgreSQL 18 的过程中,我们发现了多个 PostgreSQL 18 的缺陷,并向社区反馈或提交了修复。出于还有潜在缺陷的原因,新版本不建议直接上生产环境,需要提工单开白名单进行购买。预计能在 18.1 达到生产可用的状态,届时 PolarDB-PG 18 也会全面放开售卖。

     开通步骤


    1. 提交工单进行加白
    🔗提交工单:https://smartservice.console.aliyun.com/service/create-ticket
    1. 紧急程度选择 产品使用咨询
    2. 问题描述填写 PolarDB-PG 18 申请加白试用,并附上阿里云的主账号 ID(鼠标悬浮在控制台右上角的头像上会自动展示出来)
    3. 产品分类选择 云原生数据库 PolarDB
    4. 其他选项按需进行填写。
    2. 加白完成后,进入 PolarDB 控制台,点击创建集群。
    🔗 PolarDB控制台:https://polardb.console.aliyun.com/overview
    3. 在数据库引擎栏点击 PostgreSQL 兼容,选择 PostgreSQL 18,根据需求选择其他选项,点击立即购买。

    点击 阅读原文 了解云原生数据库PolarDB

    喜欢就请点赞/分享/推荐

    文章转载自阿里云瑶池数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论