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)))
は、私は私のインデックスを使用するには、このクエリを強制するために何かできることはありますか?
私はそれの真ん中にいました.. LOL –
あなたはインデックスが正しく作成されたかどうかチェックしましたか? –
あなたの質問を編集し、 'explain(analyze、verbose)'の出力を追加してください。 ([**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)お願いします。[スクリーンショットなし](http://meta.stackoverflow.com/questions/285551/why-mayi-i-あなたがコードを実行していないときに画像のイメージをアップロードしないでください/ 285557#285557)、実行計画のインデントを保持するようにしてください。重要です –