group by
对结果集进行分组,有两种方式可以实现,一种是创建临时表,另一种基于索引(B系列的索引)。
通过索引访问执行group by的两种方式,一是所有的范围谓词(where子句)一起应用,二是先执行范围读取,然后再对结果集执行group by操作。
在MySQL中,group by都有排序的效果(实质是根据group by后的字段进行排序),所有的服务端都会应用order by对group by进行优化。另外,
应用group by无论进行显示,隐示的排序都是禁止的。
关于group的松散索引,聚簇索引,见博文。
关于链家网一面时的问题:
select *
from student
group by className;
返回多少行数据,对于每一组?