group by即分组主要作用是把一个集合中根据group by后面的关键字进行分组,内含两个计算:
1,去掉重复值。
根据group by后面的内容,使在最终结果中没有重复值。
2,进行排序。
对group by后面的关键字进行排序。
注意:Oracle不能进行排序。
3.通过desc看执行计划的extra部分group by有using firesort
4.排序还是 order by靠谱。
5.总结:
limit有一定的优化作业,但是跟group by一起使用的话,可以看出几乎没啥效果,因为group by 是堆条件过滤后的结果集进行去重复和排序,然后才运行limit n,而distinct 是不进行排序的,如果跟limit n一起使用的话, 达到limit n中的n的个数的时候,就不再运行了,执行速度回很快,但是请注意这是没有使用索引的时候的情况。