首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL数据库分片(通过分区)是否降低了CPU利用率?

PostgreSQL数据库分片(通过分区)是否降低了CPU利用率?
EN

Stack Overflow用户
提问于 2022-04-27 09:56:00
回答 1查看 640关注 0票数 1

最近,由于大量的流量,CPU过载(超过98%的利用率)在我们的数据库实例。因此,我们决定将我们的数据库分割成多个实例。据我所知,在postgres中,db级切分主要是通过对表进行分区,并将每个分区移动到单独的实例中,如下图所示。

我认为这可能会使查询更快,但不会使主分区上的负载减少那么多,因为所有查询都是对主分区本身进行的。因此,我决定在我们的节点后端实现应用程序级的切分。

对于使用分区键完成的所有CRUD操作,应用程序级分片非常有效。但是,如果查询需要由另一个键完成,那么我们需要逐个遍历每个分区。因此,在这种情况下,最好有一个未分区的表,以便可以使用相同的表查询所有数据。

解决这个问题的好方法是什么?仅仅实现db级分片(如上面的映像所示)就足以降低主实例中的CPU利用率。

EN

回答 1

Stack Overflow用户

发布于 2022-04-27 10:07:40

如果分区是正确的,那么从所有碎片中查询数据就不需要慢了,因为所有这些碎片都可以并行查询。如果在数据库上使用分区并将远程碎片定义为postgres_fdw外部表的分区,则会自动发生这种情况,因为PostgreSQL v14引入了可以并行处理这些操作的“并行附加”执行计划节点。

如果在应用程序级别上进行切分,则必须教会应用程序并行查询碎片。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72026772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档