开发者社区> 问答> 正文

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 1928 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载