PostgreSQL 全球开发组 (PGDG) 在每年发布一个主要版本和四个次要版本方面做得非常好。与往常一样,今年的主要版本,即 v15,提供了大量新功能和增强功能。我在下面描述了一些我觉得特别令人兴奋的功能。
合并
作为 SQL 标准的一部分并专注于使开发人员的工作更轻松,MERGE 命令是一个非常有用的增强功能,它使有条件地插入、更新或删除数据变得简单。下图是该语句的简单表示。
这个条件语句使原本需要许多代码行 (LOC) 的业务逻辑变得简单。从长远来看,减少 LOC 计数还可以减少维护开销。MERGE 已经在 Oracle 和 SQL Server 中出现了一段时间,PostgreSQL 中的实现带来的一个有趣的好处是,它使人们更容易将他们的 SQL 代码从 Oracle 移动到 PostgreSQL。
逻辑复制中的行和列过滤器
逻辑复制在版本 10 中被添加到核心 PostgreSQL。从那时起,它取得了长足的进步,并在核心中添加了许多增强功能和功能。在 v10 之前,只能借助扩展 pglogical 来实现逻辑复制。
在 v15 中,逻辑复制添加了期待已久的行级和列级过滤器功能。
行和列级别过滤器可帮助您有选择地将数据从主数据库复制到备用数据库。这种选择性复制不仅有助于提高性能(如果不是所有数据都需要复制)。它还可以用于诸如安全和数据地理围栏等用例,以实现法规遵从性、多租户的实施以及为报告目的而剥离个人身份信息。
pg_basebackup 中的服务端压缩和客户端解压
pg_basebackup 是一个强大的实用程序,它可以对整个 PostgreSQL 集群进行物理备份,从而使时间点恢复以及启动新的备份集群更简单、更快。在 PostgreSQL 15 中,pg_basebackup 现在支持服务器端压缩以及客户端解压缩,从而实现数据的高效存储。支持的压缩算法包括 lz4,这可能是最快的无损压缩,从而提高了进程的性能效率。
日志格式——jsonlog
PostgreSQL 15 版本添加了以 JSON 格式格式化数据库日志的选项,从而使日志与技术人员中最流行的结构兼容。这种“结构化日志”也可以被其他实用程序用于存储和分析。
性能增强
在过去几年中,PostgreSQL 针对本地和分布式工作负载进行了一系列性能改进。虽然其中一些改进需要了解新功能并明确利用它们,但许多“只是在幕后工作”以使您的数据库性能更好。
改进的排序算法
PostgreSQL 15 中对磁盘和内存排序算法的改进导致基准加速提高了 25% - 400%。更好的是,您无需对数据库或应用程序进行任何更改即可获得这些性能提升……它们可以正常工作!
支持并行
利用多核 CPU 提供的强大功能,每个新的 PostgreSQL 版本都在提高并行度。v15 在 postgres_fdw 中提供并行 SELECT DISTINCT 和并行提交。这些是您需要专门利用的一些功能,以便使用它们来获得性能——它们不是默认行为,它们也不是“只是在幕后工作”。
共享内存中的服务器统计信息
从 PostgreSQL 15 开始,服务器级统计信息(以前是单独的统计信息收集器进程的一部分)存储在共享内存中。这消除了单独的统计收集器进程。PostgreSQL 跟踪每个进程的所有活动以获得累积统计信息,并且所有信息都可以通过不同的 pg_stat_* 视图获得。
概括
PostgreSQL 在提高其性能和在每个新版本中提供新功能方面取得了长足的进步。v15 也不例外。毫不奇怪,在 Stackoverflow 的最新开发人员调查中,PostgreSQL 是最受欢迎和最想要的数据库,同时也是DB-Engines 中流行度增长最快的数据库之一。然而,重要的是了解您的用例可以利用哪些特性来使您的 PostgreSQL 发挥最佳性能。
原文标题:PostgreSQL 15 – New Features to Be Excited About
原文作者: Umair Shahid
原文地址:https://www.percona.com/blog/postgresql-15-new-features-to-be-excited-about/




