PG 16的新特性是不是在挤牙膏呢?

PG 16的第一个预览版发布了,也就是说PG社区已经锁定了PG 16的基本功能,到正式版发布虽然还有一段时间,不过在正式版里,剪掉某些功能是有可能的,增加某些功能基本上是无望了。很多PGer对于PG 16的功能更新有些失望,这次的失望恐怕要高于PG15。PGer最大的失望莫过于XID 64、内置连接池等重要功能的缺席。我也看到了网上一些朋友对PG16挤牙膏似的功能更新感到无力吐槽。事实是否如此呢?今天老白以自己的观点来给大家解析一下PG16更新的Highlight。

16个“亮眼”的新功能Highlight的第一个就是性能方面的,首先是并行查询方面的性能提升。实际上如果仔细研究一下这些文字,里面包含的信息还是挺丰富的。在并行执行方面,PG这些年还是下了很大功夫的,在近期的每个版本中都会出现一些和并行执行相关的新特性。这说明PG核心研发团队对于硬件技术的提升还是跟随得很紧的,希望利用现代硬件的新特性来为PG的性能做加持。

PostgreSQL 16增加了更多的并行查询能力,比如允许FULL和RIGHT JION在并行模式下执行,这两类都是SQL中常有的操作,可以对十分广泛的SQL执行加速。允许parallel group和parallel aggregate则会对统计类的SQL加速,从而更快的执行一些大数据量分析的SQL。

另外一个性能方面的提升中的“增量排序”是指在排序时,可以先对一部分数据进行排序,然后逐步加入更多的数据,而不是一次性对所有数据进行排序,从而节省内存和时间。PostgreSQL 16可以在SELECT DISTINCT 查询中使用增量排序,从而提高查询的性能。

“窗口查询”是指在执行一个select查询时,可以对结果集中的每一行或每一组行应用一些聚合函数或分析函数,比如求和、平均、排名等。PostgreSQL 16对窗口查询进行了一些优化,比如支持使用frame clause来指定窗口范围,支持在此类SQL中,对RANGE和LIST分区使用push down predicate来过滤不需要的数据,支持使用partition pruning来跳过不相关的分区等,并且支持在右外连接条件中使用“anti join”。

PG 16的并行执行并不仅仅限于SELECT,对于BULK LOADING操作也支持并发模式,这个改进可以将COPY命令的性能提升3倍。大数据量装载在数据库迁移和ETL等操作中都十分常见,3倍的性能提升还是挺令人满意的。

This release also introduces support for CPU acceleration using SIMD for both x86 and ARM architectures, including optimizations for processing ASCII and JSON strings, and array and subtransaction searches. Additionally, PostgreSQL 16 introduces load balancing to libpq, the client lib。

上面这句话包含了两方面的内容,一方面是PG16对SIMD的支持,一方面是libpq支持LOAD BALANCE了。不知道为什么要把这两件事放在一段里,目前还没有测试过,所以也不清楚二者是否有关。不过这意味着libpq可以自动选择最佳的服务器来处理客户端的请求,从而提高性能和可靠性。另外这个功能也意味着今后PG数据库的高可用与读写分离将会有更加简单的实现,这也为某些以读为主的应用提供了一种更加简单的实现方式。

上面那句话的另外一面是关于SIMD的,PG 16支持SIMD了。这是一件大事吗?对PG来说也许是的,不过SIMD已经不是啥新鲜玩意了,如果早上几年,这也许算是一个创新。Oracle 12c的IMDB就已经开始使用SIMD来做行列转换了,Clickhouse等数据库也早就用上了,国产数据库也大量使用SIMD,比如openGauss前些年就在宣传对SIMD的支持了。SIMD 是一种 CPU 的加速技术,可以充分利用CPU指令集的特性,比如INTEL的AVX-512指令集的能力实现超宽向量操作,让 CPU 一次处理多个数据,从而提高运算速度。PostgreSQL 16针对X86和ARM CPU 支持使用 SIMD 技术来加速一些常见的操作,比如处理 ASCII 和 JSON 字符串。

针对这个特性,放在2023年的今天还放在HIGHLIGHT里作为一个亮点来介绍,似乎有点大惊小怪了,好像当年Oracle 12c的新特性里压根就放不下这一条。倒是一些国产数据库只要用上一点SIMD就号称在数据库中支持矢量计算了。

 在逻辑复制上,PG16也发布了一些新特性,其中最重要的是可以将逻辑复制的解码工作从主库下载到从库,这可以大大减轻主库的工作压力,在高负载情况下提高主库的性能。另外在对大事务的复制优化上,PG16支持对大事务进行并行APPLY,从而解决大事务导致逻辑复制延时过大的问题。另外一个性能优化是,在逻辑复制UPDATE/DELETE操作时,不仅仅可以使用主键,也可以使用其他索引。上述关于逻辑复制的性能优化,算是中规中矩,从库解码和大事务并行APPLY都是十分有价值的更新。

今天时间有限,关于开发体验和安全的新特性我们先跳过,我们直接来看下一条:监控与管理。这是DBA最为关心的内容。其中最令DBA兴奋的是pg_stat_io。DBA苦无法获知PG的IO性能指标久矣。在D-SMART里,PG数据库的健康模型中冠以PGIO的指标十分稀缺。

可以看到,在D-SMART的健康模型中,关于PG IO方面的指标只有区区数个,而且还都是参考性不够强的指标。

在同门兄弟openGauss中,指标的数量与质量都有了明显的提高,我们的健康模型也更能够反映出数据库的IO负载与性能状态。在PG16中,这些问题得到了改善,pg_stat_io可以按照backend类型对IO进行统计,包括读写次数,读写时间,回写次数等信息。

对于失望于没有看到XID64的朋友,PG16给了大家一个安慰奖:“This release includes improvements to the page freezing strategy, which helps the performance of vacuuming and other maintenance operations.”。可能是有点不好意思吧,在新特性中仅仅提了上面一句话。PostgreSQL 16通过使用主动的时间线来驱动 VACUUM 冻结,从而避免不必要的冻结元组。这样可以减少自动清理的频率,并提高清理效率。

关于这个问题,大家意见比较大是可以理解的,不过我们也要理解修改XID的难处。以Oracle为例,在2002年左右爆发的SCN HEADROOM问题一些老DBA可能还记得,这是因为48位的SCN以及40年前的设计者为了让Oracle数据库能保用500年而设计的每秒SCN增长16K的天花板。哪怕是刚刚出现问题的2002年,每秒新增1.6万事务的估计显得有点科幻,不过随着硬件能力的提升,现在一秒钟干20万笔事务的数据库系统已经很常见了。二十年前问题刚刚爆发时,Oracle官方就认为彻底解决该问题的方法是将48位的SCN升级为64位。不过20年过去了,Oracle还没有实现这个升级,而是把数据库SCN必须你能够保用500年这一条改掉了,谁家的数据库能一库到底500年?让SCN HEADROOM突破16K的限制比把SCN改成64位简单多了。我想目前PG社区的老大们目前也在往这方面想吧。

今天因为时间问题,我就写这么多吧,一些其他的特性就不做详细的解读了。目前我也仅仅是解读了文档,并没有真正的去使用PG16,有些东西是不是我想象的这样,这就需要今后实践中去体验了。从对PG16新特性的解析上看,虽然说对于一个年度更新大版本的数据库产品来说,这些提升还是说得过去的,不过也看出了PG社区的大佬们还是偏于保守,不过对于数据库产品来说,稳定是第一位的,确保数据安全的优先级是远高于创新的,所以大家也不要太失望。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/263743.html<

(0)
运维的头像运维
上一篇2025-05-04 17:14
下一篇 2025-05-04 17:16

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注