我只是对mysql(5.5)数据库上的汇总查询的性能感到好奇。
我有一张桌子:timestamp | category | value
。
现在我尝试
更便宜数据库服务器 1)动态构建sql或 2)来制作一个视图并在之后过滤当天?
我的工作解决方案现在 1)但我更喜欢维护的观点 2)。
也许有人可以指出一个免费,快速的解决方案来比较两种可能性的成本。
非常感谢提前和最好的祝福, 马丁
答案 0 :(得分:1)
最有效的方法是过滤一天然后再完成工作。
这是这样的:
select date_format(timestamp, '%Y-%m-%d %H'), floor(minute(timestamp) / 12),
category, avg(value)
from t
where timestamp >= '2015-01-01' and timestamp < '2015-01-02'
group by date_format(timestamp, '%Y-%m-%d %H'), floor(minute(timestamp) / 12)
order by min(timestamp);
请注意where
子句。它使用不等式,因此您可以使用t(timestamp)
上的索引。