为什么GROUPBY和ORDERBY的顺序在Redshift中很重要?

时间:2016-02-29 18:53:09

标签: amazon-redshift

在Amazon Redshift文档中,他们建议订购ORDERBY和GROUPBY条款:

  

如果同时使用GROUP BY和ORDER BY子句,请确保在两者中按列顺序排列。也就是说,使用以下方法:

     

group by a, b, c

     

order by a, b, c

     

不要使用这种方法:

     

group by b, c, a

     

order by a, b, c

来源:http://docs.aws.amazon.com/redshift/latest/dg/c_designing-queries-best-practices.html

他们不解释原因!有没有人有任何想法?

1 个答案:

答案 0 :(得分:3)

GROUP BY隐式要求对数据进行排序。如果您的ORDER BY不同,则必须将数据排序 两次

而且,由于Redshift在多个节点之间分发数据,这可能意味着数据必须发送到所有节点两次

如果GROUP BY返回的数据集很小(10行或100行),您将不会注意到,但如果它很大(数百万行),它将会非常慢