把它扔到这里'因为我在听到同事的困境后变得好奇。
在一般的生产环境查询中,在分组前先排序或在排序之前先排序会更快吗?
是的,一般生产环境。我知道这取决于很多事情:你要查询的行数,初始结果集的行数,列数,我正在使用的数据库模式,明天是否会下雨我知道,我知道。我说的是一般,因为我没有任何限制明确地设定我的好奇心。
我们只是说,根据您的经验,往往会更快?
答案 0 :(得分:3)
要分组,首先需要排序(引擎会这样做)。如果您尝试先排序,那么结果不一定排序:
select a, sum(b)
from (
select a, b
from c
order by a
) d
group by a
所以不要先尝试排序,因为无论如何你都需要排序,这只会让你的代码混乱。