postgresql Postgres -支持良好的对象数量

omvjsjqw  于 2023-06-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(162)

我们的postgres数据库目前有大约300万个对象,其中大约200万个是索引,大约50万个是表和分区,大约50万个是吐司表。由于创建了额外的表分区以及它们的索引等,对象的数量每年大约增加100万。
对我来说,大约300万个物体似乎在理论极限之内,但肯定比平常多。
我们看到(小)问题,因为有这么多的对象,但没有破坏:

  • 空的或不存在的表的真空需要超过3秒
  • 许多防缠绕吸尘器
  • 对系统表的某些查询需要很长时间,这使得DBeaver等工具有时会崩溃
  • 连接使用更多的RAM来缓存直方图等。对于许多对象/分区
  • 升级到更高的postgres版本有时需要额外的工作,例如删除许多索引并在升级后重新创建它们,以便在正常的时间内完成升级

此外,我知道这个限制目前并不影响我们:

  • 如果一个表中的分区超过65 k,则可能无法在所有分区上查询该表,因为执行计划不可能有这么多对象

我在本地测试了多达500万个对象。
我的问题是:我们是否应该紧急开始实施变革,以稳定对象数量?我觉得现在没有真实的。除了上面提到的小问题外,Postgres似乎可以很好地处理这么多分区。未来是否有重大问题会影响我们的5,6,7,10,20,50万个对象?

snvhrwxg

snvhrwxg1#

表的数量没有主要限制,单个查询也没有65000个对象的限制(我刚刚尝试了一个有66000个分区的表)。
然而,当你进入这些PostgreSQL从未设计过的领域时,你开始注意到某些事情变得缓慢和痛苦。没有硬性的限制,它只会越来越疼。
我认为重新设计您的应用程序以使其使用合理数量的表是一个非常好的主意。

相关问题