какое отличие distinct и group by

Что быстрее, выберите DISTINCT или GROUP BY в MySQL?

если у меня есть таблица

и я хочу получить все уникальные значения profession поле, что было бы быстрее (или рекомендуется):

15 ответов

они по существу эквивалентны друг другу (на самом деле это как некоторые базы данных реализации DISTINCT под капотом).

когда в сомнении, тест!

если у вас есть индекс на profession эти два слова-синонимы.

GROUP BY на MySQL результаты разные. Вы даже можете сделать:

и получить ваши профессии отсортированы в DESC порядок.

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

все ответы выше верны, для случая DISTINCT на одном столбце vs GROUP BY на одном столбце. Каждый движок БД имеет свою собственную реализацию и оптимизацию, и если вы заботитесь о очень маленькой разнице (в большинстве случаев), то вам нужно протестировать против конкретного