MySQL 5: имеет ли значение, в каком порядке находятся мои поля GROUP BY?

Peeps,

У меня есть несколько агрегатных / вычисляемых полей в моем запросе MySQL. Мое предложение GROUP BY генерируется динамически, в зависимости от того, какие параметры пользователь выбирает в веб-форме. Любопытно, может ли порядок полей, перечисленных в предложении GROUP BY, влиять на вычисления (такие как SUM, AVERAGE и т. Д.)

Спасибо!

 S.Lott08 июл. 2009 г., 03:43
Когда вы попробовали две разные версии, что вы измерили?
 trcarden09 дек. 2011 г., 12:13
Не забудьте оформить заказmysql-optimization-guide для правил оптимизации по группам. Так как один из ответов, приведенных ниже, показывает, порядок порядка влияет на скорость поиска индекса в mysql.

Ответы на вопрос(2)

WITH ROLLUPиначе не должно быть.

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

Допустим, у нас есть вторичный индекс наCustomers таблица с двумя столбцами (город, штат) - и они указываются в указанном порядке в индексе.

ВЫБЕРИТЕ СЧЕТЧИК (*) ИЗ ГРУППЫ Клиентов ПО ГОРОДУ EXPLAIN показывает, что он использует индекс.

Но...

ВЫБЕРИТЕ СЧЕТЧИК (*) ИЗ ГРУППЫ Заказчиков По Штату, Город EXPLAIN показывает, что он не использует индекс.

Это на MySQL 5.1 с таблицей InnoDB.

Ваш ответ на вопрос