0
非常に大きなテーブルでクエリを最適化するのに苦労しています。基本的にすべての彼らは日付によって結果セットをフィルタリングする:postgresqlで日付クエリを最適化する
次の日付インデックスを追加SELECT FROM bigtable WHERE date >= '2015-01-01' AND date <= '2016-01-01' ORDER BY date desc;
が実際に物事を悪化させる:
CREATE INDEX CONCURRENTLY bigtable_date_index ON bigtable(date(date));
つまり、インデックスなしでそれが実行に1秒ほどかかりますそれを実行するには約10秒かかります。しかし、より大きな範囲とフィルタリングでは、そのインデックスがなくても非常に遅いです。
私はpostgresql 9.4を使用しています.9.5には、ソートに役立つ改善点がいくつかあります。
この場合、BRINインデックスが役立ちますか?
し、[編集]をhttp://wiki.postgresql.org/wiki/SlowQueryQuestionsをお読みくださいあなたの不足している情報を追加します。 –
そして、あなたの列に 'date'という名前をつけるのではなく**強いアドバイスをしてください。 – joop
これは明らかに例です@joop – brauliobo