postgresql - Postgres - 内置的自动和动态分区
问题描述
我已经(因为我使用 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 之间范围的特定客户端,则执行程序将转到特定文档仅包括该客户端和该时间范围的数据。
我也想知道是否有简单的不需要像我今天那样为每个日期创建分区表。
谢谢。
解决方案
您可以使用子分区来做到这一点(分区表的分区本身可以被分区)但是这样做可能会导致分区数量的组合爆炸;这很可能适得其反。
我也想知道是否有简单的不需要像我今天那样为每个日期创建分区表。
不会。声明式分区不会自动为您创建分区。您仍然需要手动完成,或者编写脚本,或者创建触发器来完成它(IMO 不是一个好的选择)
推荐阅读
- javascript - 如何将数据推送到嵌套数组中的子数组?
- java - 侦听器函数中的 AsyncHttpClient 用法(以及这些函数的重用)
- html - Bootstrap 4 表单验证 - 调用 checkValidity() 后自定义样式不起作用
- python - 有没有办法使用python中的打印功能打印字符/?
- linux - 尝试在 linux mint 上构建 mariadb connector-c 时出错。怎么修?
- javascript - Div 有时会在页面加载时消失,并且只会在重新加载或调整大小时出现
- html - z-index 为 -1 的页脚位于 z-index 为 1 的部分上方?
- php - wp_nav_menu_items - 导航菜单中的第一个位置
- java - 共享偏好 Android Studio
- javascript - Javascript 本地存储。只获取前 3 个元素?