0
我有一個表,看起來像這樣:PostgreSQL表不使用的日期列索引
CREATE TABLE a (a_id int), (my_date date)
CREATE INDEX idx_my_date ON a USING BTREE (my_date)
表大約有140M行,我試圖通過BETWEEN
日期查詢,查詢表...和由於某種原因,它不使用my_date
上的索引。
我試圖運行查詢:
SELECT COUNT(*) from "a"
where "a"."my_date" >= to_date('2017-04-28', 'YYYY-MM-DD')
and "a"."my_date" <= to_date('2017-05-03', 'YYYY-MM-DD');
Aggregate (cost=4666237.99..4666238.00 rows=1 width=8)
Seq Scan on a (cost=0.00..4314558.32 rows=140671866 width=0)
Filter: ((my_date >= to_date('2017-04-28'::text, 'YYYY-MM-DD'::text)) AND (my_date <= to_date('2017-05-03'::text, 'YYYY-MM-DD'::text)))
有什麼我可以做強制此查詢中使用我的索引?
我在它的中間..大聲笑 –
你檢查索引是否正確創建或沒有? –
請編輯您的問題並添加'explain(analyze,verbose)'的輸出。 ([**格式化文本**](http://stackoverflow.com/help/formatting)請] [無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why-mayi-i-不要上傳圖像的代碼,這樣當問一個問題/ 285557#285557),並確保你保留執行計劃的重要性 - 這很重要 –