您好,匿名用户
随意问技术百科期待您的加入

一个mysql group by 优化问题

0 投票

表结构

iMoney  类型:float   
dtEventTime  类型:datetime   
iType 类型:tinyint   
iAction 类型:tinyint

现在存在的索引(test)是:
iType 跟 dtEventTime 的一个组合索引

select sum(iMoney) as iMoney,iAction from CostMoney where iType = 3 and dtEventTime between '2012-09-29' and '2012-09-30' group by iAction

这条语句查询后explain 下

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra   
1   SIMPLE  CostMoney   range   test    test    9   NULL    3893    Using where; Using temporary; Using filesort

这个表里面的数据每天特别大 , 请问有什么好的优化办法?

用户头像 提问 2012年 12月1日 @ Riven 上等兵 (334 威望)
分享到:

1个回答

0 投票

给你点建议:
1、按天分表,这样每个表就不会那么大
2、用另一个缓存、或者表专门累加iMoney,每天的分记录,产生一条累加一次
3、group by iAction order by NULL ?(天知道有没有效果)

用户头像 回复 2012年 12月1日 @ Virgo 上等兵 (284 威望)
提一个问题:

相关问题

0 投票
1 回复 72 阅读
用户头像 提问 2012年 12月1日 @ Pisces 上等兵 (182 威望)
0 投票
1 回复 25 阅读
+1 投票
1 回复 87 阅读
用户头像 提问 2013年 8月25日 @ Karma 上等兵 (229 威望)
0 投票
1 回复 124 阅读
用户头像 提问 2012年 12月1日 @ 随意问站长 上等兵 (310 威望)
0 投票
1 回复 67 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...