首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们什么时候应该在Postgresql中使用表分区?

我们什么时候应该在Postgresql中使用表分区?
EN

Database Administration用户
提问于 2020-10-07 07:52:11
回答 2查看 5.3K关注 0票数 6

上下文:我们的数据库中有两个相当大的表,一个保存着8000万条记录,另一个保存着1.6亿条记录。我们看到了性能问题,并正在考虑对这两个表使用表分区。

我的问题是:是否有一些记录表明我们应该分割或不保持良好的表现?我知道没有一个“一刀切”的答案,但可能有一个一般性的建议,比如“传递X百万条记录,你应该对表进行分区”。有很多关于如何分区的指导,但不是“什么时候”。

EN

回答 2

Database Administration用户

发布于 2020-10-07 08:40:13

不,没有真正的行号阈值。如果您只有按主键选择行的查询,那么表的大小并不重要。

分区也主要是一种管理工具,用于快速删除不再需要的行,而不是性能工具。

它可以用于提高性能,但只有当查询只需要所有行的(小)子集时才能使用。如果所有查询(或至少所有性能关键查询)都包含分区键,那么分区可以帮助提高性能。

您还需要根据由此产生的分区数量来选择分区键。对于Postgres 12或更高版本,“数千”分区是可行的(我听说用户成功地使用了~20000分区,但我认为这已经是一个延伸)。过多的分区很可能是不切实际的,因为这会使查询的规划变得更慢。

您还应该考虑到这样一个事实,即分区表在主键可以是什么方面是有限的-它必须包括分区键。因此,如果有引用分区表的外键,这可能会变得复杂。

票数 8
EN

Database Administration用户

发布于 2020-10-07 10:13:01

第一步是在每个分区上创建唯一的约束,而不是一个分区表。第二项工作是将两个表中的一些列触发到复制的列表中。从复制的一些表中检索一些数据。它将对表格和数据进行微调。

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

https://dba.stackexchange.com/questions/276672

复制
相关文章

相似问题

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