所以并不是所有的DISTINCT都是降低效率的,当然你得提前判断数据的重复量。 2、GROUP BY与DISTINCT去掉重复数据的对比 GROUP BY与DISTINCT类似,经常会有一些针对这两个哪个效率高的争议,今天我们就将这两个在不同重复数据量的效率作下对比。 A.重复数据量多的情况下,对UnitPrice进行去重 SELECTDISTINCTUnitPriceFROMsal...
可以看到,Group By更快。 综上所述,其他条件一定时,数据重复项越多,distinct效率越高,反之,数据越唯一,group by效率越高。(测试用例较少,时间差距其实不明显,受电脑影响,数据有时不准。所以具体数据具体试验,不要盲目使用,人云亦云。) 原因: distinct需要将列中的全部内容都存储在一个内存中,可以理解为一个has...
题目链接 戳这里 题解1 使用 DISTINCT : SELECT DISTINCT university FROM user_profile 题解2 使用 GROUP BY : SELECT university FROM user_profile GROUP BY university ##DI
通过上述两个实验,我们可以得出这样一条结论:在重复量比较高的表中,使用DISTINCT可以有效提高查询效率,而在重复量比较低的表中,使用DISTINCT会严重降低查询效率。所以并不是所有的DISTINCT都是降低效率的,当然你得提前判断数据的重复量。 2.GROUP BY与DISTINCT去掉重复数据的对比 GROUP BY与DISTINCT类似,经常会有一些针...
我们知道DISTINCT可以去掉重复数据,GROUP BY在分组后也会去掉重复数据,那这两个关键字在去掉重复数据时的效率,究竟谁会更高一点? 1.使用DISTINCT去掉重复数据 我们先看下面这个例子: 代码语言:javascript 复制 SELECTDISTINCTUnitPriceFROM[Sales].[SalesOrderDetail]WHEREUnitPrice>1000; ...
我们知道DISTINCT可以去掉重复数据,GROUP BY在分组后也会去掉重复数据,那这两个关键字在去掉重复数据时的效率,究竟谁会更高一点? 1.使用DISTINCT去掉重复数据 我们先看下面这个例子: SELECT DISTINCT UnitPrice FROM [Sales].[SalesOrderDetail] ...
我们知道DISTINCT可以去掉重复数据,GROUP BY在分组后也会去掉重复数据,那这两个关键字在去掉重复数据时的效率,究竟谁会更高一点? 1.使用DISTINCT去掉重复数据 我们先看下面这个例子: SELECT DISTINCT UnitPrice FROM [Sales].[SalesOrderDetail] WHERE UnitPrice>1000; ...
SQL-去重Groupby和Distinct的效率 SQL-去重Groupby和Distinct的效率 经实际测试,同等条件下,5千万条数据,Distinct⽐Group by效率⾼,但是,这是有条件的,这五千万条数据中不重复的仅仅有三⼗多万条,这意味着,五千万条中基本都是重复数据。为了验证,重复数据是否对其有影响,本⼈针对80万条数据进⾏测试...
DISTINCT只需要找出所有不同的值就可以了。而GROUP BY还要为其他聚集函数进行准备工作。从这一点上看,GROUP BY做的工作应该比DISTINCT要多一些。 但实际上,GROUP BY 效率会更高 为什么呢?对于DISTINCT操作,它会读取所有的记录;而GROUP BY需要读取的记录数量与分组的组数量一样多,也就是说比实际的记录数要少很多。
distinct 和group by都需要排序,一样的结果集从执行计划的成本代价来看差距不大,但group by 还涉及到统计,所以应该需要准备工作。所以单纯从等价结果来说,选择distinct比较效率一些。 其实二者没有什么可比性,但是对于不包含聚集函数的GROUP BY操作来说,和DISTINCT操作是等价的。不过虽然二者的结果是一样的,但是二者的...