在检查范围中的包含项和对表进行排序之间,通常更有效的方法是什么?

时间:2018-10-25 06:07:33

标签: sql postgresql

我正在为一张桌子考虑两种不同的设计。

可能会涉及一个lifetime列,该列存储一个tstzrange来定义记录的生存期。不同行的lifetime永远不会在我感兴趣的查询定义的过滤器中重叠。 该字段使用以下索引:

create index on table_name using gist (lifetime);

另一个将仅具有一个索引为created_at的字段:

create index on table_name (created_at);

以下两者之间是否存在性能差异?

select ...
from table_name
where ...
and lifetime @> now()

和:

select ...
from table_name
where ...
and created_at <= now()
order by created_at desc
limit 1

0 个答案:

没有答案