MySql date_add()查询改进

时间:2012-03-12 14:40:20

标签: mysql sql

我正在运行一个查询,该查询获取今天的活动(现在()),并将其与过去5天内同时的活动进行比较。

select count(*) ,date(timestamp) date , now() now  
from activitylog 
where timestamp>date_add(now(), INTERVAL -5 DAY) and 
      hour(timestamp) <=hour(now()) 
group by date(timestamp) 
order by date(timestamp) desc;

有没有办法比上述方式更有效率?

1 个答案:

答案 0 :(得分:1)

如上所述,查询将返回当天活动的当天活动,直至当天和前4天的当前小时,以及仅五天前的当前小时活动 - 将其设置为包括整天到第五天的当前小时,将where子句改为:

where timestamp>date(date_add(now(), INTERVAL -5 DAY)) and 
      hour(timestamp) <=hour(now())

除此之外,我能想到的唯一问题是检查timestamp列上是否有索引。否则,它似乎处于最佳状态。