2016-02-29 2 views
0

В Redshift документации Amazon, они советуют, что заказывать в пунктах OrderBy и GroupBy:Почему в GROUPBY и ORDERBY задан вопрос в Redshift?

Если вы используете как 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

GROUP BY неявно требует сортировки данных. Если ваш ORDER BY отличается, данные необходимо будет отсортировать дважды.

И, поскольку Redshift распространяет свои данные между несколькими узлами, это может означать, что данные должны быть отправлены на все узлы дважды.

Если набор данных, возвращаемый GROUP BY, является небольшим (10 или 100 строк), вы не заметите, но если он большой (миллионы строк), он будет очень медленным.

+0

Почему группа требует сортировки данных? –

+0

'GROUP BY' в основном означает« сжимать дубликаты этого столбца в одну строку », правильно? Дубликаты найдены путем сортировки данных. –

+0

Не мог ли он найти дубликаты его каким-то другим способом, например, через hashmap? –

Смежные вопросы