2013-06-27 41 views
1

我有一個數十萬行的表格,我有必要選擇在某個日期範圍內創建的行,這可能是唯一的'where'子句。有沒有可接受的方法來提高查詢性能? 如果'date_created'字段在所有插入的行中全部增加,我是否需要每天(或者更經常地)b-樹索引上的表CLUSTERing?如何處理postgresql中的範圍日期選擇?

+0

您是否在date_created上添加了索引? –

回答

1

這是在您要過濾的日期列上進行分區的經典案例。

該文檔描述的過程中更詳細,但是在總結:

  • 創建從當前表
  • 繼承其結構創建一個檢查約束限制可以被存儲的時間範圍子表在子表
  • 無論插入「當前」分區,然後重命名父表在適當的情況或設置觸發器插入的行推到相關分區

只有在您指定的日期範圍內的分區纔會在查詢執行期間進行掃描 - 顯着提升性能。