
好多人还在用postgresql 10 , 12 这些版本的时候, POSTGRESQL 已经开启了POSTGRESQL 14的旅程。那么到底Postgresql 14 有什么吸引人的,那就需要了解一下。
https://sql-info.de/postgresql/postgresql-14/articles-about-new-features-in-postgresql-14.html
想详细了解了可以到这个网站上找答案,这里仅仅是总结性的并且是对某些个人特殊的点进行一些描述。
首先我们先抛出一个BOM, 关于之前一直被其吐槽的,为什么在高并发场景建议使用pgbouncer 的时期。


从上面的红色画圈的文字中,至于为什么可以从下面的文字中找到答案
https://cloud.tencent.com/developer/article/1674779
也就是说,在PG14 中关于这部分的源代码必然是更改的,至于怎么更改的还的去研究。但这段文字的出现可以证明,pgbouncer的路算是可以走到头的。PG14 提高了数据库连接的并发连接的能力,白话就是可以提供更多的连接数的设置,而不会导致系统变慢。

这里有一个测试关于PG13.3 和 PG14 之间的连接时TPS 的不同, 这里5000个连接时,14 强于 13 20% ,1000个连接强于 50%的 TPS .

第二个问题增强的就是对于频繁更新的数据表中的INDEX 的更新,之前我们要保证老版本和新版本的行,而这些行的INDEX 的访问就是一个问题,之前我们通过指针的方式来进行,同时达到一定条件下我们走一个相关的hot only tupple optimization 的工作,在14这个版本里面提到了对此有更多的优化。 那么相关的PG 14 版本中关于频繁更新的表的索引访问将有更好的表现。

数据库vacuum 的速度在POSTGRESQL 14中也是提高的,下面这段文字描述了在测试中提高的速度对同样的数据进行vacuum的速度从 4.1秒提高了2.9秒.

另外的一个更新就是POSTGRESQL 14中对于并行查询的性能提升,同时支持TOAST使用新型的压缩方式,减少CPU的占用提高压缩的比率LZ4的方式.
除此以外,之前POSTGRESQL 的 FDW 并不是通过异步的方式来进行数据的提取,而PG14 是通过异步的方式来进行数据的提取, 所以在数据的提取的效率上来看,对比之前是要有进步的.

当然这里也有一些小的改进,例如对对于REINDEX 直接操作中可以将索引迁移到其他的表空间的功能.
同时针对内存的监控也给出了一些新的监控的指标,例如
pg_backend_memory_contexts 通过这个函数我们可以查询到每个连接到PG中的连接使用的内存的大小, 这点有利于了解出 PG BUFFER 外的内存的使用,可以计算出当前总的连接使用的内存的数量.
从上面的一些文字看POSTGRESQL 14 的确在一些性能方面有所提高,并且有一些的确是我们需要的.所以还蛮期待 PG14 .

PostgreSQL14在并发连接能力、索引更新优化、VACUUM速度提升、并行查询性能及TOAST压缩等方面进行了显著改进。连接数增加时,TPS性能增强,尤其在5000个连接时比PG13.3强20%,1000个连接时强50%。此外,数据库索引更新和VACUUM操作的效率提高,且支持TOAST的LZ4压缩。PG14还引入异步FDW数据提取,提高数据提取效率,并提供新的内存监控指标。这些提升使得PG14成为高并发场景更具吸引力的选择。
903

被折叠的 条评论
为什么被折叠?



