哪个操作更昂贵?按订单排序还是按分组排序?
答案 0 :(得分:2)
这取决于部署的算法。
但是,在某些情况下,有明确的答案:例如在MySQL中。
MySQL不使用基于散列的分组算法,但始终使用基于排序的分组。这意味着,在MySQL中,group by
本质上将首先执行order by
,然后进行分组。因此,在当前的MySQL版本中,group by
比order by
贵。
但是,许多其他数据库也考虑为group by
使用哈希表-在这种情况下,group by
也可能比order by
更快(因为没有基于哈希的排序算法)。
另请参阅:
答案 1 :(得分:0)
IT DEPENDS:
排序是非常耗费资源的操作
如果使用索引,则是由于索引存储数据的方式 (使用索引是为了避免 排序操作 否则,它需要大量的CPU时间,但主要问题是数据库必须临时缓冲结果。
希望您得到了答案:)