经过四个测试版和一个候选版之后,今天早些时候发布了PostgreSQL 15的RC2。如果一切顺利,祝你好运!这个版本将会在10月13日正式发布。
PostgreSQL全球开发小组(PGDG)每年都会发布一个主版本和四个小版本。一如既往,今年的主要版本,即v15,提供了大量的新功能和增强功能。下面我将介绍一些我认为特别令人兴奋的特性。
合并
MERGE命令是SQL标准的一部分,主要用于简化开发人员的工作,它是一个非常有用的增强,可以有条件地插入、更新或删除数据。下面的图表是该语句的简单表示。

业务逻辑本来需要很多行代码(LOC),但使用这个条件语句可以简化业务逻辑。减少LOC计数还可以减少长期的维护开销。MERGE已经出现在Oracle和SQL Server中有一段时间了,在PostgreSQL中实现MERGE带来的一个有趣的好处是,它可以让人们更容易地将SQL代码从Oracle转移到PostgreSQL。
逻辑复制中的行和列筛选器
逻辑复制在10版中被添加到核心PostgreSQL中。从那时起,它已经取得了长足的进步,并在核心中添加了许多增强和功能。在v10之前,逻辑复制只能借助扩展plogic来实现。
在v15中,逻辑复制添加了期待已久的行级和列级筛选器特性。

行级和列级筛选器帮助您有选择地将数据从主数据库复制到备用数据库。这种选择性复制不仅有助于提高性能(如果不是所有数据都需要复制)。它还可以用于安全性和数据的地理围栏等用例,以满足法规遵从性,实现多租户,以及为报告目的剥离个人身份信息。
pg_basebackup中的服务器端压缩和客户端解压
pg_basebackup是一个功能强大的实用程序,它可以对整个PostgreSQL集群进行物理备份,从而使时间点恢复以及启动一个新的备份集群更简单、更快。在PostgreSQL 15中,pg_basebackup现在支持服务器端压缩和客户端解压,从而实现高效的数据存储。支持的压缩算法包括lz4,这可能是最快的无损压缩,从而提高了进程的性能效率。
日志格式- jsonlog . log
PostgreSQL 15版本增加了以JSON格式格式化数据库日志的选项,从而使日志与技术人员中最流行的结构兼容。其他实用程序也可以使用这个“结构化日志”进行存储和分析。
性能增强
在过去的几年中,PostgreSQL针对本地和分布式工作负载进行了一系列的性能改进。虽然其中一些改进需要理解新特性并明确地利用它们,但许多改进“只是在幕后工作”,以提高数据库的性能。
改进的排序算法
在PostgreSQL 15中,对磁盘和内存排序算法的改进导致基准测试速度提高了25% - 400%。更棒的是,您不需要对数据库或应用程序进行任何更改就可以获得这些性能提升……它们就是可以工作!
支持并行
利用多核cpu提供的强大功能,并行性随着每一个新的PostgreSQL版本的发布而不断提高。v15在postgres_fdw中提供并行SELECT DISTINCT和并行提交。这些是您需要特别利用的功能,以便使用它们获得性能-它们不是默认行为,也不是“只在幕后工作”。
共享内存中的服务器统计信息
从PostgreSQL 15开始,服务器级统计数据(以前是单独的统计数据收集进程的一部分)存储在共享内存中。这消除了单独的统计信息收集器进程。PostgreSQL跟踪每个进程的所有活动以获得累积统计信息,所有信息都可以通过不同的pg_stat_*视图获得。关于这个话题,Jobin Augustine写了一篇相当详细的文章:PostgreSQL 15: Stats Collector消失了?有什么新鲜事吗?
总结
PostgreSQL在提高性能和在每个新版本中提供新特性方面取得了巨大的进步。V15也不例外。毫不奇怪,PostgreSQL是最喜欢以及通缉在Stackoverflow的最新开发人员调查中,该数据库是其中之一增长最快的在DB-Engines很受欢迎。然而,重要的是要了解哪些特性可以用于你的用例,以使你的PostgreSQL运行在最佳状态。






