Postgresql
如何索引 WHERE (start_date >= ‘2013-12-15’)
我有一個名為 items 的表,在表內有一個 some_date 列,其中 date 作為數據類型。
我想知道如何用 PostgreSQL 索引 some_date 列
SELECT "items".* FROM "items" WHERE (some_date >= '2013-12-15')
對項目進行點陣圖堆掃描(成本=126.48..4671.78 行=6459 寬度=384)(實際時間=0.799..2.035 行=7511 循環=1) 重新檢查條件:(some_date >= '2014-03-30'::date) -> index_items_on_some_date_and_end_date 上的點陣圖索引掃描(成本=0.00..124.86 行=6459 寬度=0)(實際時間=0.744..0.744 行=8777 循環=1) 索引條件:(some_date >= '2014-03-30'::date) 總執行時間:2.439 毫秒
我考慮過部分索引,但 some_date 在使用的值方面是靈活的。
您只需要在
some_date
DB 欄位中添加一個 B-tree 索引。僅當您知道查詢參數並希望排除/包含特定範圍(http://www.postgresql.org/docs/current/static/indexes-partial.html)時,部分索引才有效。另一種選擇是每天或每月對 DB 欄位使用表分區(http://www.postgresql.org/docs/current/static/ddl-partitioning.html)
some_date
,因此您可以輕鬆排除大量行。