Подтвердить что ты не робот

Что лучше: отличительный или групповой

Что более эффективно?

SELECT  theField
FROM    theTable
GROUP BY theField

или

SELECT  DISTINCT theField
FROM    theTable
4b9b3361

Ответ 1

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

Однако у них обоих есть своя цель. Чтобы сделать код более понятным, вы должны использовать отличный исключить повторяющиеся строки и сгруппировать с помощью применять агрегированные операторы (сумма, счет, макс,...).

Ответ 2

Не имеет значения, это приводит к такому же плану выполнения. (по крайней мере, для этих запросов). Эти вопросы легко решить, включив анализатор запросов или SSMS, чтобы показать план выполнения и, возможно, статистику трассировки сервера после выполнения запроса.

Ответ 3

В большинстве случаев DISTINCT и GROUP BY генерируют те же планы, и их производительность обычно одинакова.

Ответ 4

Вы можете проверить план выполнения, чтобы посмотреть общую стоимость этих операторов. Ответ может различаться в разных сценариях.

Ответ 5

Хммм... насколько я могу видеть в Плане выполнения для выполнения похожих запросов, они идентичны.

Ответ 6

В MySQL, DISTINCT кажется немного быстрее, чем GROUP BY, если theField не индексируется. DISTINCT только удаляет повторяющиеся строки, но GROUP BY, по-видимому, сортирует.

Ответ 7

вам нужно знать разницу между ними и не использовать их взаимозаменяемо.