您好,欢迎访问一九零五行业门户网

mysql中distinct和group by比较_MySQL

bitscn.com
在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用distinct和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是asc)。          distinct 实际上和 group by 操作的实现非常相似,只不过是在 group by 之后的每组中只取出一条记录而已。所以,distinct 的实现和 group by 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是紧凑索引扫描来实现。        那distinct 和group by哪个效率更高?         distinct操作只需要找出所有不同的值就可以了。而group by操作还要为其他聚集函数进行准备工作。从这一点上将,group by操作做的工作应该比distinct所做的工作要多一些。        但实际上,group by 效率会更高点,为什么呢?对于distinct操作,它会读取了所有记录,而group by需要读取的记录数量与分组的组数量一样多,也就是说比实际存在的记录数目要少很多。  
 作者 lcffufly bitscn.com
其它类似信息

推荐信息