次のクエリを使用すると、応答時間が非常に遅くなります (場合によっては 1 分以上!)。
select * from cdr where start_time < now() - interval '4 hours' and final = 0 limit 50
final=0 で starttime が 4 時間以上前のレコードを取得しようとしています。以下は、テーブルにあるインデックスです。
CREATE INDEX "cdr_Final_ix"
ON cdr
USING btree
(start_time , final );
以下は、分析の説明です。
"Limit (cost=0.00..167.81 rows=50 width=188) (actual time=64491.409..64650.635 rows=11 loops=1)"
" -> Seq Scan on cdr (cost=0.00..749671.06 rows=223372 width=188) (actual time=64491.407..64650.625 rows=11 loops=1)"
"Filter: ((final = 0) AND (start_time < (now() - '04:00:00'::interval)))"
"Total runtime: 64650.690 ms"
どんな助けでも大歓迎です。ありがとう、アリ