Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 哪个操作更昂贵?按订单还是按分组?_Sql - Fatal编程技术网

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

Sql 哪个操作更昂贵?按订单还是按分组?,sql,Sql,哪个操作更昂贵?按订单还是按分组?这取决于部署的算法 然而,在某些情况下有一个明确的答案:例如在MySQL中 MySQL不使用基于散列的分组算法,而是始终使用基于排序的算法。这意味着,在MySQL中,GROUPBY将首先执行ORDERBY,然后进行分组。因此,在当前的MySQL版本中,GROUPBY比ORDERBY更昂贵 然而,许多其他数据库也考虑使用一个散列表来代替组,在这种情况下,由于没有基于散列的排序算法,组也比订单快。 另见: 这取决于: 分拣是一项资源密集型作业 如果使用索引,那是因为

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

这取决于部署的算法

然而,在某些情况下有一个明确的答案:例如在MySQL中

MySQL不使用基于散列的分组算法,而是始终使用基于排序的算法。这意味着,在MySQL中,GROUPBY将首先执行ORDERBY,然后进行分组。因此,在当前的MySQL版本中,GROUPBY比ORDERBY更昂贵

然而,许多其他数据库也考虑使用一个散列表来代替组,在这种情况下,由于没有基于散列的排序算法,组也比订单快。 另见:

这取决于:

分拣是一项资源密集型作业

如果使用索引,那是因为索引存储数据的方式 使用索引是为了避免排序操作以满足 否则它需要相当多的CPU时间,但主要问题是数据库必须临时缓冲结果


希望您能得到答案:

order by和group by是两种完全不同的操作,因此您的问题没有意义