你如何处理postgresql中的范围日期选择?

时间:2013-06-27 08:07:23

标签: sql performance postgresql query-performance

我有一个包含数十万行的表,我有必要选择在某个日期范围内创建的行,这可能是唯一的'where'子句。有没有可接受的方法来提高查询性能? 如果这个'date_created'字段在所有插入的行中总是增加,我是否需要每天(或者更经常地)对b-tree索引进行CLUSTERing?

1 个答案:

答案 0 :(得分:1)

这是在您要过滤的日期列上进行分区的经典案例。

文档更详细地描述了该过程,但总结如下:

  • 创建一个从当前表继承其结构的子表
  • 创建一个检查约束,限制可以存储在子表中的日期范围
  • 插入“当前”分区,然后根据需要重命名,或者在父表上设置触发器以将插入的行推送到相关分区

只有在您指定的日期范围内的分区才会在查询执行期间进行扫描 - 性能显着提升。

相关问题