哪个操作更昂贵?排序依据还是分组依据?

时间:2018-06-25 09:35:28

标签: sql

哪个操作更昂贵?按订单排序还是按分组排序?

2 个答案:

答案 0 :(得分:2)

这取决于部署的算法。

但是,在某些情况下,有明确的答案:例如在MySQL中。

MySQL不使用基于散列的分组算法,但始终使用基于排序的分组。这意味着,在MySQL中,group by本质上将首先执行order by,然后进行分组。因此,在当前的MySQL版本中,group byorder by贵。

但是,许多其他数据库也考虑为group by使用哈希表-在这种情况下,group by也可能比order by更快(因为没有基于哈希的排序算法)。

另请参阅:

答案 1 :(得分:0)

IT DEPENDS:

排序是非常耗费资源的操作

如果使用索引,则是由于索引存储数据的方式 (使用索引是为了避免 排序操作 否则,它需要大量的CPU时间,但主要问题是数据库必须临时缓冲结果

希望您得到了答案:)