PostgreSQL 全球开发组宣布 PostgreSQL 15 的第一个 beta 版本现已可供下载。此版本包含 PostgreSQL 15 正式可用时将提供的所有功能的预览,但该版本的某些细节可能会在最终正式版发布时发生变化。
PostgreSQL 15 中的一些功能亮点
开发者体验提升
PostgreSQL 15 添加了用于简化和增强开发人员体验的新功能。
PostgreSQL 15 引入MERGE命令,用于有条件地对数据执行写操作(INSERT,UPDATE或DELETE)。在此版本之前,可以使用存储过程或在有限的基础上使用 INSERT … ON CONFLICT. 使用 PostgreSQL 15,开发人员可以编写简单、富有表现力的查询来选择要采取的适当数据修改的操作。
PostgreSQL 在 2012 年作为9.2 版本的一部分增加了对 JSON 的支持。五年后发布的 SQL/JSON 标准指定了用于访问和操作存储在关系数据库中的 JSON 数据的各种接口。PostgreSQL 15 在对 SQL/JSON 路径语言的现有支持之上新增更多标准SQL/JSON 函数。其中包括SQL/JSON 构造函数、 查询函数以及将 JSON 数据转换为表的能力。
PostgreSQL 15 增加了更多的正则表达式函数,包括regexp_count, regexp_instr, regexp_like, 和regexp_substr. range_agg 函数在 PostgreSQL 15 中引入,用于将 range数据类型聚合为multirange类型,现在也支持聚合multirange类型。
性能表现提升
PostgreSQL 15 在过去几个版本上有性能提升。此版本包括对较大数据集进行排序时显着加速。特别是,这些数据集是超过work_mem参数。
PostgreSQL 15 的性能提升扩展到各种查询类型。这包括为 SELECT DISTINCT 语句引入并行以改进在使用row_number()rank()count()窗口函数的性能。PostgreSQL使用postgres_fdw 来管理远程 PostgreSQL 服务器上的数据的应用程序现在可以启用并行提交事务。对于涉及带有分区表的查询,有性能增强。
用于存储大于单页 (8kB) 数据的 PostgreSQL 系统和TOAST表,现在可以利用更小的索引和更快的查找来删除重复数据。
在psql命令中\copy用于批量加载数据在 PostgreSQL 15 中也有性能改进。
备份、存档和压缩
在引入 LZ4 压缩的先前版本基础上,PostgreSQL 15 为各种组件添加了对 Zstandard (zstd) 压缩的支持。
pg_basebackup,现在支持使用 Gzip、LZ4 或 Zstandard 压缩的服务器端压缩。pg_basebackup客户端现在还可以解压缩使用 LZ4 和 Zstandard 压缩的备份。
wal_compression 现在可以通过配置参数使用 LZ4 和 Zstandard 压缩来压缩预写日志 (WAL) 文件 。此外,PostgreSQL 15 还添加了 recovery_prefetch 可以通过预取数据块来帮助加快恢复操作的选项。此版本添加了一个名为 pg_walinspect 的新模块,可让您直接通过 SQL 检查有关 WAL 文件的信息。
PostgreSQL 15 允许您通过指定archive_library参数来归档,不需要运行shell脚本. 可以在 basic_archive模式中找到一个 WAL 归档库。此外,现在可以定义自己的 WAL 资源管理器,让它们使用逻辑复制。
逻辑复制
PostgreSQL 15 为逻辑复制引入了 行过滤和 列过滤 。此外,用户现在可以方便地指定发布某个schema中的所有表,而以前只能对数据库中的所有表执行此操作。
此版本还增加了对处理冲突的更多支持 。订阅者现在可以指定disable_on_error在发生错误时自动停止逻辑复制。PostgreSQL 15 可以使用 ALTER SUBSCRIPTION … SKIP 命令跳过应用更改。
管理
PostgreSQL 15 引入了 jsonlog日志格式。这允许 PostgreSQL 日志被许多执行结构化日志聚合和分析程序的使用。PostgreSQL 15 现在默认记录缓慢的checkpoints和autovacuum操作。
客户端现在psql有一个命令\dconfig用于检查配置参数的值。默认情况下,\dconfig显示非默认值的配置参数。
PostgreSQL 15 现在将所有服务器级别的统计信息存储在共享内存中。 服务器不再运行统计信息收集器进程。
ALTER TABLE 命令现在可以修改表的ACCESS METHOD,用于设置表使用的存储系统。
安全
在 PostgreSQL 集群中创建数据库时,PostgreSQL 15 引入了新的默认值。创建新数据库时,数据库所有者之外的用户(由 pg_database_owner 表示)和超级用户不能再在默认public schema中创建对象。
PostgreSQL 15 增加了对“security invoker views”的支持,让非创建视图的用户拥有查询视图的权限。
PostgreSQL 15 中的非特权用户现在可以通过ALTER SYSTEM和SET被授予更改服务器变量的特权。
附加的功能
PostgreSQL 15 中添加了许多其他新功能和改进。其中许多也可能对您的用例有所帮助。有关新功能和更改功能的完整列表,请参阅发行说明:
https://www.postgresql.org/docs/15/release-15.html
下载地址
https://www.postgresql.org/ftp/source/v15beta1/
- | - | - |
---|---|---|
postgresql-15beta1.tar.bz2 | 2022-05-16 21:15:02 | 22.4 MB |
postgresql-15beta1.tar.bz2.md5 | 2022-05-16 21:15:02 | 61 bytes |
postgresql-15beta1.tar.bz2.sha256 | 2022-05-16 21:15:02 | 93 bytes |
postgresql-15beta1.tar.gz | 2022-05-16 21:15:02 | 29.3 MB |
postgresql-15beta1.tar.gz.md5 | 2022-05-16 21:15:02 | 60 bytes |
postgresql-15beta1.tar.gz.sha256 | 2022-05-16 21:15:02 | 92 bytes |