小编Ari*_*ack的帖子

为什么我的 postgreSQL 索引没有被使用?

当我使用以下查询时,响应时间非常糟糕(有时超过一分钟!)。

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)

任何帮助将不胜感激。谢谢,阿里

postgresql indexing performance datetime

2
推荐指数
1
解决办法
7654
查看次数

标签 统计

datetime ×1

indexing ×1

performance ×1

postgresql ×1