SELECT SUM(`amount`) as amount, from_unixtime(`visitTime`, '%Y-%m-%d %H:00') as time FROM bfT.tj_page_3_201401 WHERE `visitTime` >= 1390194000 and `visitTime` < 1390366800 GROUP BY time
弱弱的问下,这个SQL有什么好的优化方案么,这个表的数据量在百万级别。
SELECT SUM(`amount`) as amount, from_unixtime(`visitTime`, '%Y-%m-%d %H:00') as time FROM bfT.tj_page_3_201401 WHERE `visitTime` >= 1390194000 and `visitTime` < 1390366800 GROUP BY time
弱弱的问下,这个SQL有什么好的优化方案么,这个表的数据量在百万级别。
5 回答1.5k 阅读
2 回答2.2k 阅读
3 回答762 阅读✓ 已解决
1 回答1k 阅读
1 回答694 阅读✓ 已解决
1 回答994 阅读
1 回答866 阅读
如果你不 group by 那么在 visitTime 上建立索引就是有效的,但是这种 group by 。。。
我只想到一种办法:先预处理 visitTime 得到 time ,作为表的一个字段保存下来,然后建立 (visitTime, time) 的复合索引。