首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果所有分区都被同等使用,分区会提高性能吗?

如果所有分区都被同等使用,分区会提高性能吗?
EN

Stack Overflow用户
提问于 2022-07-05 08:11:13
回答 2查看 147关注 0票数 0

考虑以下情况:

  • I有一个大的PostgreSQL表,其主键为UUID。UUID是随机生成的,并且均匀地分布在UUID空间上。
  • I将UUID列上的表划分为256个范围(例如基于UUID的前8位)。
  • 所有分区都存储在同一个物理磁盘上。

基本上,这意味着所有256个分区都将被同等使用(与基于时间的解析不同,在这种情况下,最近的解析通常比其他分区更热)。

通过这样的分区,我会看到性能有任何改善吗?

基于UUID的查询返回一个单行(WHERE uuid_key = :id)?

  • For (必须搜索所有分区?

)的查询。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-05 08:24:23

大多数查询将变得更慢。例如,如果通过uuid_key进行搜索,优化器必须确定要搜索哪个分区,这会随着分区数的增加而增加。索引扫描本身在小表上不会比在大表上快得多。

如果您有几个分区相同的表,并且在分区键上将它们连接起来,这样就可以获得分区连接(但请记住设置enable_partitionwise_join = on),您可以从中受益。分区聚合也有类似的速度增长。

即使您不能期待查询的性能提高,分区仍然有其用途,例如,如果您需要几个自动真空工作人员来处理单个表。

票数 0
EN

Stack Overflow用户

发布于 2022-07-05 08:19:20

通过执行这种类型的分区,

将看到性能上的任何改善:

对于基于UUID的查询,返回一行(其中uuid_key = :id)?

是的: Postgresql将只在正确的分区中搜索。此外,您还可以在插入或更新中获得性能,减少页面争用。

  1. 用于必须搜索所有分区的其他查询?

不完全是,但是索引设计可以将问题最小化。

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

https://stackoverflow.com/questions/72866056

复制
相关文章

相似问题

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