总结

  1. 如果对group by语句的结果没有排序要求, 要在语句后面加 order bynull;
    2. 尽量让group by过程用上表的索引, 确认方法是explain结果里没有Using temporary和 Using
    filesort;
    3. 如果group by需要统计的数据量不大, 尽量只使用内存临时表; 也可以通过适当调大
    tmp_table_size参数, 来避免用到磁盘临时表;
    4. 如果数据量实在太大, 使用SQL_BIG_RESULT这个提示, 来告诉优化器直接使用排序算法
    得到group by的结果。