我已经(因为我使用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之间的范围的特定客户端,执行器将转到仅包含该客户端和该时间范围的数据的特定文档。
我还想知道是否有简单的方法,不需要像我今天这样为每个日期创建分区表。
谢谢。
发布于 2019-11-25 02:24:35
您可以使用子分区来做到这一点(分区表的分区本身也可以进行分区),但这样做可能会导致分区数量的组合爆炸;这可能会适得其反。
我还想知道是否有简单的方法,不需要像今天这样为每个日期创建分区表。
不是的。声明性分区不会自动为您创建分区。您仍然需要手动完成它,或者编写脚本,或者创建触发器来完成它(这不是一个好的选择,IMO)
https://stackoverflow.com/questions/59019714
复制相似问题