对单个字段的结果进行去重,用distinct执行效率快,还是用group by快
发布网友
发布时间:2022-04-11 17:58
我来回答
共2个回答
热心网友
时间:2022-04-11 19:27
那要看字段有多大。
distinct方式就是两两对比,需要遍历整个表。
group by分组类似先建立索引再查索引,所以两者对比,小表destinct快,不用建索引。大表group by快。一般来说小表就算建索引,也不会慢到哪去,但是如果是TB级大表,遍历简直就是灾难。
所以很多ORACLE项目都禁止使用distinct语句,全部要求替换成group by。
热心网友
时间:2022-04-11 20:45
distinct 和group by都需要排序,一样的结果集从执行计划的成本代价来看差距不大,但group by 还涉及到统计,所以应该需要准备工作。所以单纯从等价结果来说,选择distinct比较效率一些。