2025年9月25日: PostgreSQL 18 发布!

功能矩阵

此表概述了哪些功能在哪些版本中添加。要获取有关某功能的更多信息,请点击链接或将鼠标指针悬停在文本上。

分组

按版本过滤

后端

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
64位大对象
咨询锁
自定义后台工作进程
基于磁盘的 FSM
动态后台工作进程
EXPLAIN (BUFFERS) 支持
EXPLAIN (MEMORY)
EXPLAIN (SERIALIZE) 支持
EXPLAIN (WAL) 支持
"jsonlog" 日志记录格式
用于监控规划器的可加载插件基础设施
LISTEN/NOTIFY 的有效载荷支持
pg_stat_checkpointer 系统视图
pg_stat_io - I/O 指标视图
pg_wait_events 系统视图
共享内存中的服务器统计信息
SQL 标准信息模式
匿名共享内存支持
EXPLAIN 的 XML、JSON 和 YAML 输出

数据类型、函数和运算符

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
复合类型的数组
数组支持
ENUM 数据类型
GUID/UUID 数据类型
macaddr8 数据类型
多范围 (Multiranges)
数组中的 NULL
短语搜索
范围类型
smallserial 类型
类型修饰符支持
UUIDv7
XML 数据类型

索引和约束

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
块范围 (BRIN) 索引
B-tree 向上删除索引
B-tree 去重
并发 GiST 索引
B-tree 的覆盖索引 (INCLUDE)
GiST 的覆盖索引 (INCLUDE)
可延迟唯一约束
排除约束
GIN (广义反向索引) 索引
GIN 索引部分匹配
GIN 索引性能和大小改进
GiST (广义搜索树) 索引
表达式索引
仅索引扫描
GiST 上的仅索引扫描
IS NULL 的索引支持
内存位图索引
K-最近邻 GiST 支持
K-最近邻 SP-GiST 支持
非阻塞 CREATE INDEX
并行 B-tree 索引扫描
BRIN 索引的并行 CREATE INDEX
B-tree 索引的并行 CREATE INDEX
GIN 索引的并行 CREATE INDEX
多列 B-tree 索引上的跳过扫描
空间分区 GiST (SP-GiST) 索引
范围类型的 SP-GiST 索引
UNIQUE NULLS NOT DISTINCT
哈希索引的 WAL 支持

SQL

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
ANY_VALUE 聚合函数
FETCH FIRST .. WITH TIES
GROUPING SETS, CUBE 和 ROLLUP 支持
INSERT/UPDATE/DELETE RETURNING
LATERAL 子句
MERGE
MERGE ... RETURNING
多行 VALUES
非十进制整数文字
ORDER BY NULLS FIRST/LAST
range_agg 范围类型聚合函数
递归查询
regexp_count, regexp_instr, regexp_like
从修改的行返回 OLD 和 NEW 值
行式比较
SELECT FOR NO KEY UPDATE/SELECT FOR KEY SHARE 锁定模式
SQL 标准间隔处理
SYSTEM_USER
TABLE 语句
千位分隔符使用下划线 (_)
unnest/array_agg
Upsert (INSERT ... ON CONFLICT DO ...)
窗口函数
WITHIN GROUP 子句
WITH ORDINALITY 子句
WITH 查询 (公用表表达式)
可写 WITH 查询 (公用表表达式)

数据定义语言 (DDL)

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
ALTER object IF EXISTS
ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX
ALTER TABLE ... SET ACCESS METHOD
ALTER TABLE ... SET LOGGED / UNLOGGED
更改列类型 (ALTER TABLE .. ALTER COLUMN TYPE)
CREATE ACCESS METHOD
CREATE TABLE ... (LIKE) 包含外部表、视图和复合类型
DROP object IF EXISTS
CREATE TEMPORARY TABLE 的 ON COMMIT 子句
REINDEX CONCURRENTLY
存储生成的列
时间约束
类型化表
虚拟生成的列

性能

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
缩写键
异步提交
异步 I/O (AIO)
自动计划无效化
后台检查点进程
后台写入进程
基础备份节流
CREATE STATISTICS - 最常用值 (MCV) 统计信息
CREATE STATISTICS - 多列
CREATE STATISTICS - "OR" 和 "IN/ANY" 统计信息
跨数据类型哈希支持
分布式检查点
标记为 NOT VALID 的外键
已冻结页面映射
全文搜索
基于磁盘的哈希聚合
DISTINCT/UNION/INTERSECT/EXCEPT 的哈希支持
FULL OUTER JOIN、LEFT OUTER JOIN 和 RIGHT OUTER JOIN 的哈希支持
仅堆元组 (HOT)
超过工作内存的排序性能改进
窗口函数性能改进
增量排序
SELECT DISTINCT 的增量排序
窗口函数的增量排序
内联 WITH 查询 (公用表表达式)
SQL 函数的内联
表达式求值和元组解构的即时 (JIT) 编译
libpq / psql 的负载均衡
TOAST 表的 LZ4 压缩
只读工作负载的多核可伸缩性
多个临时表空间
外连接重排序
并行位图堆扫描
并行 FULL 和 RIGHT 连接
并行全表扫描 (顺序扫描)
并行哈希连接
并行 JOIN、聚合
并行合并连接
并行查询
并行 "SELECT DISTINCT"
部分排序能力 (top-n 排序)
查询流水线
ALTER TABLE 命令的锁定级别降低
SELECT ... FOR UPDATE/SHARE NOWAIT
为 TABLESPACE 设置特定成本
共享行级锁定
ARM 的 SIMD 支持
x86 的 SIMD 支持
SKIP LOCKED 子句
同步顺序扫描
TABLESAMPLE 子句
表空间
未记录表
WAL 缓冲区自动调优

JSON

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
改进的 JSON 函数和运算符集
JSONB 数据类型
JSONB 修改运算符和函数
JSONB 下标
JSON 数据类型
SQL/JSON 构造函数
SQL/JSON: datetime()
SQL/JSON IS JSON
SQL/JSON JSON_TABLE
SQL/JSON 路径表达式
SQL/JSON 查询函数

分区和继承

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
加速分区裁剪
声明式表分区
默认分区
分区表的外部键引用
外部表继承
按哈希键分区
查询执行期间的分区裁剪
分区表的 PRIMARY KEY、FOREIGN KEY、索引和触发器支持
表分区
分区键上的 UPDATE

视图和物化视图

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
物化视图
带并发刷新的物化视图
SECURITY INVOKER 视图
临时视图
可更新视图
WITH CHECK 子句

复制

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
ALTER SUBSCRIPTION ... SKIP
级联流复制
配置复制槽的最大 WAL 保持时间
逻辑复制槽的故障转移支持
逻辑复制
逻辑复制避免复制循环
逻辑复制列列表
分区表的逻辑复制
从备用服务器进行逻辑复制
存储生成列的逻辑复制
使用二进制协议进行逻辑复制初始同步
具有附加索引的逻辑复制查找
逻辑复制并行应用事务
逻辑复制发布模式下的所有表
逻辑复制行过滤
逻辑复制槽通过 pg_upgrade migrate 迁移
逻辑复制流式处理进行中的事务
逻辑复制订阅者可以禁用错误
逻辑复制写入冲突日志记录
同步复制的仲裁提交
复制槽
仅流式复制的级联复制
流复制
同步复制

备份、恢复和数据完整性

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
归档模块
数据页校验和
在离线集群中启用/禁用页面校验和
通用 WAL 机制
热备
WAL 全页写入的 lz4 和 Zstandard (zstd) 压缩
min_wal_size / max_wal_size
多个同步备用服务器
命名恢复点
并行 pg_dump
并行恢复
pg_basebackup 客户端解压缩
pg_basebackup 增量备份
pg_basebackup 服务器端压缩
pg_basebackup 工具
pg_dump, pg_dumpall, pg_restore --filter
pg_receivewal (原 pg_receivexlog)
按时间点恢复
恢复期间预取 WAL
remote_apply 模式
延迟备用服务器
验证备份完整性 (pg_verifybackup)
温备

升级

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
pg_upgrade --swap
主要版本升级时保留的规划器统计信息

数据导入和导出

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
COPY 到/从 STDIN/STDOUT
COPY FROM ... WHERE
COPY ... ON_ERROR
带任意 SELECT 的 COPY
COPY 的 CSV 支持

配置管理

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
ALTER SYSTEM
"整数"值的小数输入
pg_hba.conf 和 pg_ident.conf 的 Include 指令
每个用户/数据库的服务器配置设置
pg_config 系统视图
pg_hba.conf 和 pg_ident.conf 中的正则表达式匹配

安全

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
SCRAM 身份验证的通道绑定
客户端可要求 SCRAM 通道绑定
客户端指定的身份验证要求
列级别权限
默认权限
直接 TLS 协商 ("sslnegotiation")
FIPS 模式验证
GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS
GSSAPI 客户端和服务器端加密
GSSAPI 支持
Kerberos 凭证委托
krb5 身份验证 (无 gssapi)
大对象访问控制
LDAP 服务器发现
通过有效的客户端 SSL/TLS 证书进行多因素身份验证
原生 LDAP 身份验证
原生 RADIUS 身份验证
OAuth 身份验证/授权
每个用户/数据库的连接限制
预定义角色
设置配置参数的权限
ROLES
行级安全
SCRAM-SHA-256 身份验证
LDAP 身份验证的 Search+bind 模式操作
视图上的 security_barrier 选项
安全服务提供商接口 (SSPI)
用于密码哈希的 SHA-2 加密
libpq 中的 SSL 证书验证
SSL 客户端证书身份验证
通过 GSSAPI 进行 SSPI 身份验证
支持使用客户端的 OS 受信任 CA。
TLS v1.3 密码套件允许列表

事务和可见性

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
游标
保存点
可串行快照隔离
两阶段提交
可更新游标

VACUUM 和维护

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
插入的数据可触发自动 vacuum
集成自动 vacuum 守护进程
页面冻结优化
索引的并行 VACUUM
并行 vacuumdb 作业
用于 vacuum 的基数树内存结构
Vacuum "紧急模式"
用于 Vacuuming 的可见性图

外部数据包装器

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
postgres_fdw 的证书身份验证
CREATE FOREIGN TABLE ... LIKE
外部数据包装器查询并行性
外部数据包装器
外部表
IMPORT FOREIGN SCHEMA
导入外部表分区
远程数据库上的并行查询执行
postgres_fdw 并行提交
postgres_fdw 下推
postgres_fdw SCRAM 身份验证直通
PostgreSQL 外部数据包装器
可写外部数据包装器

自定义函数、存储过程和触发器

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
ALTER TABLE ENABLE/DISABLE TRIGGER
ALTER TABLE / ENABLE REPLICA TRIGGER/RULE
BEGIN ATOMIC 函数体
执行过程的 CALL 语法
列级别触发器
SQL 存储过程的 CREATE PROCEDURE 语法
事件触发器
聚合函数的 FILTER 子句
聚合内的 ORDER BY 支持
每个函数的 GUC 设置
每个函数的统计信息
RETURN QUERY EXECUTE
RETURNS TABLE
语句级触发器
语句级 TRUNCATE 触发器
视图上的触发器
可变参数函数
CREATE TRIGGER 的 WHEN 子句

过程语言

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
pl/pgsql 中的 CASE
PL/pgSQL 的 CONTINUE 语句
CREATE TRANSFORM
pl/perl 的 DO 语句
pl/pgsql 的 DO 语句
PL/pgSQL 中的 EXCEPTION 支持
PL/pgSQL 中的 EXECUTE USING
pl/pgsql 中的 FOREACH IN ARRAY
pl/pgsql 和 PL/SQL 的 IN/OUT/INOUT 参数
命名参数
非超级用户语言创建
pl/pgsql 默认安装
多态函数
pl/python 的 Python 3 支持
限定函数参数
RETURN QUERY 的查询并行性
pl/pgsql 中的 RETURN QUERY
函数的 ROWS 和 COST 规范
pl/pgsql 的可滚动和可更新游标支持
pl/pgsql 的 SQLERRM/SQLSTATE
PL/python 中的 Unicode 对象支持
用户定义异常
pl/perl 的验证器函数

扩展

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
CREATE EXTENSION .. CASCADE
扩展安装
受信任的扩展

国际化

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
内置的、与平台无关的不可变排序规则
casefold
列级别排序规则支持
数据库级别排序规则
集群/数据库的默认 ICU 排序规则
EUC_JIS_2004/ SHIFT_JIS_2004 支持
ICU 排序规则
非确定性排序规则的 LIKE 比较
多字节编码支持,包括 UTF8
多语言支持
非确定性排序规则
pg_unicode_fast 排序规则
Unicode 字符串文字和标识符
Windows 上的 UTF8 支持

客户端应用程序

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
pgbench
pg_combinebackup
pg_createsubscriber
pg_prewarm
pg_rewind
pg_standby
pg_upgrade
pg_waldump
pg_walsummary
pg_xlogdump
psql \bind
psql \dconfig
psql 流水线查询
psql 命名预备语句
版本感知的 psql

附加模块 (contrib)

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
adminpack
auth_delay
auto_explain
btree_gin
btree_gist
citext
dblink
dblink 异步通知支持
file_fdw
fuzzystrmatch
hstore
intarray
isn (ISBN)
CUBE 的 KNN 支持
ltree
pageinspect
passwordcheck
pg_buffercache
pg_freespacemap
pg_logicalinspect
pg_overexplain
pg_stat_statements
pg_stat_statements 改进
pgstattuple
pg_trgm
pg_trgm 正则表达式索引
pg_walinspect
seg
sepgsql
sslinfo
tablefunc
tcn
tsearch2 兼容性包装器
unaccent
uuid-ossp
xml2

网络

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
完整的 SSL 支持
IPv6 支持
V2 客户端协议
V3 客户端协议

平台

  18 17 16 15 14 13 12 11 10 9.6 9.5 9.4 9.3 9.2 9.1 9.0 8.4 8.3 8.2 8.1
Microsoft Visual C++ 支持
原生 Windows 端口
SuperH 硬件平台的自旋锁支持
Linux 上的 Sun Studio 编译器
Windows x64 支持