我正在运行一个查询,该查询获取今天的活动(现在()),并将其与过去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;
有没有办法比上述方式更有效率?
答案 0 :(得分:1)
如上所述,查询将返回当天活动的当天活动,直至当天和前4天的当前小时,以及仅五天前的当前小时活动 - 将其设置为包括整天到第五天的当前小时,将where子句改为:
where timestamp>date(date_add(now(), INTERVAL -5 DAY)) and
hour(timestamp) <=hour(now())
除此之外,我能想到的唯一问题是检查timestamp列上是否有索引。否则,它似乎处于最佳状态。