POSTGRESQL 14 功能有啥吸引人的

2021-07-16 00:00:00 连接 版本 内存 方式 文字

好多人还在用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 .


相关文章