mysql distinct 与 group by 的区别
2010-08-16 15:24
411 查看
在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用 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需要读取的记录数量与分组的组数量一样多,也就是说比实际存在的记录数目要少很多。
DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是紧凑索引扫描来实现。
那DISTINCT 和GROUP BY哪个效率更高?
DISTINCT操作只需要找出所有不同的值就可以了。而GROUP BY操作还要为其他聚集函数进行准备工作。从这一点上将,GROUP BY操作做的工作应该比DISTINCT所做的工作要多一些。
但实际上,GROUP BY 效率会更高点,为什么呢?对于DISTINCT操作,它会读取了所有记录,而GROUP BY需要读取的记录数量与分组的组数量一样多,也就是说比实际存在的记录数目要少很多。
相关文章推荐
- mysql联合查询是用DISTINCT和GROUP BY之间的性能区别
- mysql distinct 与 group by 的区别
- mysql中group by的时候字段不加聚合函数和distinct的情况
- MySQL中distinct及group by的一些用法 分享
- mysql ORDER BY,GROUP BY 和DISTINCT原理
- MySQL Order by 、Group by 、Distinct的优化
- 关于MySQL与SQLLite的Group By排序原理的区别
- MySQL中distinct及group by的一些用法
- 解析mysql中:单表distinct、多表group by查询去除重复记录
- (MySql)distinct、group by去重
- mysql中去重 distinct 和 group by
- DISTINCT和GROUP BY的区别
- mysql中:单表distinct、多表group by查询去除重复记录
- Distinct 和Group by的区别
- mysql GROUP BY 代替DISTINCT 遇到的问题及解决
- group by在mysql和oracle中的区别
- mysql的order by,group by和distinct优化
- MySQL中distinct及group by的一些用法
- MySQL中distinct及group by的一些用法 分享
- Mysql中order by、group by、having的区别深入分析