当我使用以下查询时,响应时间非常糟糕(有时超过一分钟!)。
select * from cdr where start_time < now() - interval '4 hours' and final = 0 limit 50
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取 Final=0 且开始时间超过 4 小时的记录。以下是我在桌子上的索引:
CREATE INDEX "cdr_Final_ix"
ON cdr
USING btree
(start_time , final );
Run Code Online (Sandbox Code Playgroud)
以下为解释分析:
"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"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢,阿里