对于最简单的情况,我们都参考:
select id from mytbl
group by id
和
select distinct id from mytbl
众所周知,在一些项目中,它们会生成同样的查询计划,比如像哪个更好:Distinct还是Group By。
然而在Hive中,前者只有一个reduce任务,而后者有很多。
从实验中,我发现GROUP BY比DISTINCT快10倍以上。
它们是不同的。
所以我学到的是:
GROUP-BY不会比DISTINCT差,有时甚至更好。
我想知道:
1. 如果这个结论是真的。
2. 如果是真的,我应该把DISTINCT视为一种逻辑上的便利方法,但为什么DISTINCT没有采用GROUP-BY更好的实现方式?
3. 如果是假的,我非常渴望了解其在大数据情况下的合理用法。
非常感谢!!:)
group by
和distinct
是等价的,这也适用于Hive。你是否使用EXPLAIN来查看实际执行计划? - Luaan