软件发布:2022-05-20
2022-05-19,PostgreSQL全球开发组宣布,功能最为强大的开源数据库,PostgreSQL 15的第1个Beta测试版本已提供下载,这个版本包含将来PostgreSQL 15正式版本中的所有特性和功能,当然一些功能的细节在Beta测试阶段也可能会有些变化。 可以从以下网址浏览PostgreSQL 15版本所有的新特性和变化内容。
按PostgreSQL开源社区的精神,我们鼓励大家在用户的场景下测试新功能,以帮助我们消除Bug或是其他可能存在的问题。当然我们不建议大家在生产环境使用PostgreSQL 15 Beta1版本, 我们鼓励用户使用生产环境下的数据或工作负载测试这个版本。用户的测试将帮助社区来确保PostgreSQL 15版本保持我们一贯以来的标准,即提供稳定、可靠的世界上功能最为强大的开源的关系数据库系统。
目录
PostgreSQL 15版本新特性
开发者体验
性能提升
备份、归档 和压缩
后台管理
安全性
其他的特性
相关链接
PostgreSQL 15版本增加了一系列功能来简化和提升开发者的使用体验。 新版本引入了新的MERGE特性,这是一项SQL标准功能,它可以有条件地执行写操作(INSERT、UPDATE、DELETE),在以前的版本中,类似的操作可以通过存储过程,或是在限定条件下,使用INSERT … ON CONFLICT来完成。 在PostgreSQL 15版本中,开发人员可以通过写相对简单、有直观意义的查询来执行相应的数据更新操作;
PostgreSQL也增强了自2012年从9.2版本就引入的JSON功能,而SQL/JSON的标准直到2017年才发布。新版本中可以指定一组接口来灵活地存取保存在关系数据库中JSON数据。15版本通过对已有的SQL/JSON路径检索功能的增强,也实现了更多的SQL/JSON标准,包括SQL/JSON初始创建,查询,属性探知,当然也包括将JSON转为数据表功能。
PostgreSQL 15也增加了更多的正则表达式功能,包括regexp_count 、 regexp_instr 、 regexp_like 和 regexp_substr 。 range_agg函数在15版本中现在也可以支持聚合多范围multirange数据类型数据。
PostgreSQL 在最近的多个版本中,一直在持续提升性能,15版本也不例外。此次新版本对大数据集的排序,特别是在数据集大小超过 work_mem参数指定大小时,性能显著提高。
新版本中对各类查询也进行了优化,包括对SELECT DISTINCT指令引入了并行查询功能,对使用row_number(), rank(),count() 等窗口函数也进行了增强。 现在使用PostgreSQL外部数据封装器postgres_fdw来管理远程数据时,可以并行提交事务。还有多处对分区表查询的性能优化。
PostgreSQL 的系统表和TOAST表(用于存储大于单页8K大小的数据),现在可以利用索引去重功能,来减小索引并加快查询。
psql 的\copy 指令,现在新的15版本中也得到了专项提升。
在前一个版本中引入的 LZ4 压缩算法后,新的15版本中又引入了Zstandard算法,并在各个模块可以使用。
pg_basebackup用于 PostgreSQL全备的工具,现在支持服务端各种压缩算法,包括 Gzip、 LZ4 和 Zstandard , 这个pg_basebackup客户端工具现也支持对备份文件使用LZ4和Zstandard算法的解压操作。
WAL预写日志文件现在通过对 wal_compression配置参数修改,可以支持使用LZ4、Zstandard算法进行压缩。新版本中也加入了recovery_prefetch选项,可以通过预存取数据块来帮助提高恢复操作。15版本还增加了一个新模块pg_walinspect,可以帮助用户使用SQL来检查WAL日志文件的详情。
PostgreSQL 15版本可以让用户直接进行WAL归档,而不必通过在命令行指定archive_library参数后运行。 另外,extension扩展子模块现在可以指定它们自己的WAL资源管理器,来配合逻辑复制操作。
PostgreSQL 15 新版本引入了 jsonlog数据格式用于日志记录,这允许 PostgreSQL日志可以被很多以结构化日志提取、聚合和分析的应用软件直接使用。新版本中也会自动记录运行较慢的checkpoints和autovacuum操作。
psql客户端工具现在新增了一个 \dconfig 指令,用于检查系统参数配置,缺省情况下, \dconfig显示所有不是缺省参数值的参数及其当前新值。
PostgreSQL 15新版本现在也在共享内存中保存了服务器层级的统计数据,系统服务现在不必再运行一个统计数据收集进程了。
ALTER TABLE指令现在可以修改一个表的ACCESS METHOD参数,用于变更表的底层数据存储方式。
PostgreSQL 15版本中在创建数据库时引入了新的缺省设置,现在数据库创建后,只要不是pg_database_owner中指定的用户,包括超级用户在内都是不能在缺省的public模式中创建对象。
PostgreSQL 15版本增加了对security invoker views的支持,它使用执行查询的当前用户权限,而不是创建视图的用户权限。
在PostgreSQL 15版本中未授权的用户,现在可以通过使用SET来更新服务端变量或是ALTER SYSTEM指令来进行用户授权。
许多其他的新特性和改进也加入了PostgreSQL 15,部分内容对一些特定的用户也许比上面提及的改进更重要。请参阅 发布声明详稿 来浏览完整的全部新特性或是改进功能列表。