Postgres-内置的自动和动态分区

问题描述 投票:0回答:1

我已经(因为我使用了PostgreSQL 9.6)按范围继承了分区表

日期为2019-11-01的分区如下所示:

client_id,product_id,date,orders
1,1,2019-11-01, 100
1,2,2019-11-01, 200
2,3,2019-11-01,150
2,4,2019-11-01,160 

我知道自从PostgreSQL 10开始,分区表可以被不同地处理和定义,并且是内置的

由于我当前的继承分区仅在日期方面有所不同,因此对于我有的每个客户端,查询都会从保存所有客户端数据的X分区中提取数据。

我想知道是否可以创建一个新的主表,该表基于范围(日期)和客户端ID(列表)具有“子代”,然后如果我查询X和Y之间范围的特定客户端,执行器将转到仅包含该客户和该时间范围内数据的特定文档。

我也想知道是否有简单的方法,而无需像今天一样为每个日期创建分区表。

谢谢。

postgresql
1个回答
1
投票

您可以使用子分区来做到这一点(可以对分区表的分区本身进行分区),但是这样做很可能导致分区数量的组合爆炸式增长;这可能适得其反。

我也想知道是否有简单的方法,而无需像今天一样为每个日期创建分区表。

没有声明性分区不会自动为您创建分区。您仍然需要手工完成或编写脚本,或创建触发器来执行此操作(IMO并非一个好选择)

© www.soinside.com 2019 - 2024. All rights reserved.