DISTINCT 与 GROUP BY 的比较】的更多相关文章

MySQL中distinct和group by性能比较[转] 之前看了网上的一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论(仅在个人计算机上测试,可能不全面,仅供参考) 测试过程: 准备一张测试表 1 CREATE TABLE `test_test` ( 2 `id` int(11) NOT NULL auto_increment, 3 `num` int(11) NOT NULL default '0', 4 PRIMARY KEY (`id`) 5 ) ENGINE=MyISAM…
mysql distinct和group by性能   1,测试前的准备 //准备一张测试表 mysql> CREATE TABLE `test_test` ( ->   `id` int(11) NOT NULL auto_increment, ->   `num` int(11) NOT NULL default '0', ->   PRIMARY KEY  (`id`) -> ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCR…
这两者本质上应该没有可比性,distinct 取出唯一列,group by 是分组,但有时候在优化的时候,在没有聚合函数的时候,他们查出来的结果也一样. 举例来说可能方便一点. A表 id num a 1 b 2 c 3 a 4 c 7 d 3 e 5 如果只选出id列,用distinct和group by 一样的. select distinct(id) from A; id a b c d e; select id from A group by id; id a b c d e; 不同之处…
看了很多文章,这两个SQL语句在不同的数据库上面的实现上可能有相同或有不同,但是应当要明确它们在功能概念上的区别,最终得出结论: GROUP BY 用来使用聚集函数获得值,比如 AVG, MAX, MIN, SUM 和 COUNT,而 DISTINCT 用于去除重复值. 要根据实际的应用场景来使用(即使它们有时候返回的结果是一样的) PS - 个人博客链接 Distinct 与 Group by 的比较…
当数据量非常大,在同一个query中计算多个不相关列的distinct时,往往很容易出现数据倾斜现象,导致运行半天都不能得到结果. 比如以下的SQL语句(a, b, c没有相关性): select distinct(a), distinct(b), distinct(c) from tableName; 改进方案:把计算的distinct先group by,然后再计算: select distinct(t.a), distinct(t.b), distinct(t.c) from( select…
distinct和group by的性能比较 当去重复的字段 的个数比较多的时候,group by 比distinct要快很多 当去重复的字符 的个数比较少的时候,distinct 比group by 要快很多 此原因是因为算法不同导致.根据需要情况选择自己的用法…
使用distinct 和group by都可以实现数据去重. select distinct 字段 group by 一般放在where条件后…
在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC). DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已.所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是紧凑索引扫描来实现.…
mysql中常用去重复数据的方法是使用 distinct  或者group by ,以上2种均能实现,但2者也有不同的地方. distinct 特点: 如:select  distinct   name, sex,from tb_students  这个sql的语法中,查询 tb_students  表中 name, sex,并去除名字和性别都重复的学生: 1.distinct 只能放在查询字段的最前面,不能放在查询字段的中间或者后面. 备注:select   sex,distinct   na…
44 答疑(三) Join的写法 35节介绍了join执行顺序,加了straight_join,两个问题: --1 如果用left join,左边的表一定是驱动表吗 --2 如果两个表的join包含多个条件的等值匹配,是都要写到on里面呢,还是只把一个写到on,把其他的条件写到where部分? create table a(f1 int, f2 int, index(f1))engine=innodb; create table b(f1 int, f2 int)engine=innodb; ,…