开发者社区> 问答> 正文

PostgreSQL的给timestamp建立索引后,count变慢的问题。

测试数据2000万,当我使用如下的一个SQL时,

select count(1)
from t_member
where birthday between '1997-09-14' and '2007-09-14';

如果不创建索引,这个SQL将会在1s之后返回结果(2500817条记录),如果通过以下脚本

create index t_member_birthday_index
    on t_member (birthday);

创建索引之后,这个时间消耗将会上升为9s,query explain也显示了这一问题,但是对于SQL

select *
from t_member
where birthday >= '1997-09-14' and birthday <= '2007-09-14'
order by birthday desc

建立索引之后明显比不建立索引更快,对于这种问题改如何解释并进行优化。

展开
收起
柳叶清 2019-09-14 11:44:27 2001 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
PostgreSQL 物联网六脉神剑 立即下载
PostgreSQL在哈啰的实践-周飞 立即下载
PostgreSQL高并发数据库应用数据 立即下载