按照用户消费记录的中和进行排序
select * from user_cunstorm group by userid order by sum(xiaofei)
如何优化?
目前userid有索引,xiaofei也有索引,组合索引也试了一下,explain的结果
Using index; Using temporary; Using filesort  如何优化呀

解决方案 »

  1.   

    select userid ,  sum(xiaofei) from user_cunstorm group by userid order by sum(xiaofei)
      

  2.   

    select * from user_cunstorm group by userid order by sum(xiaofei)
    这种写法在mysql不会报错,但是实际上是会有问题的。另外,你的这个写法select * 是返回所有字段,但你是根据userid分组求和,如果用上索引,也是索引扫描,效率较低,且要把数据放到临时表中,进行文件排序,效率就更低了。
      

  3.   

    order by sum(xiaofei) 这是一个聚合结果,所以在这个上排序用不到列上的索引
      

  4.   

    mysql不是很标准,楼主写的那个运行没问题,但得到的实际结果可能和想要的不一样。
    楼主可以考虑一下1#写的那个
      

  5.   

    order by  sum(xiaofei)
    是用不到索引的
      

  6.   

    仅能对group by userid 进行索引,其它没什么可优化的了。除非增加一张表,专门存放sum(xiaofei)利用触发器更新或者定时更新。