Maison > base de données > tutoriel mysql > SELECT DISTINCT ou GROUP BY : quelle requête MySQL est la plus rapide pour les valeurs uniques ?

SELECT DISTINCT ou GROUP BY : quelle requête MySQL est la plus rapide pour les valeurs uniques ?

Mary-Kate Olsen
Libérer: 2025-01-15 06:28:43
original
451 Les gens l'ont consulté

SELECT DISTINCT or GROUP BY: Which MySQL Query is Faster for Unique Values?

Comparaison des performances de SELECT DISTINCT et GROUP BY dans MySQL

Dans MySQL, vous pouvez utiliser une requête SELECT DISTINCT ou GROUP BY pour extraire des valeurs uniques dans la table. Il existe cependant une certaine ambiguïté quant à la méthode la plus performante.

Considérez la forme suivante :

<code class="language-sql">CREATE TABLE users (
  id int(10) unsigned NOT NULL auto_increment,
  name varchar(255) NOT NULL,
  profession varchar(255) NOT NULL,
  employer varchar(255) NOT NULL,
  PRIMARY KEY  (id)
)</code>
Copier après la connexion

Pour récupérer des valeurs uniques pour le champ "profession", vous pouvez utiliser deux requêtes :

Requête 1 (SELECT DISTINCT) :

<code class="language-sql">SELECT DISTINCT u.profession FROM users u</code>
Copier après la connexion

Requête 2 (GROUP BY) :

<code class="language-sql">SELECT u.profession FROM users u GROUP BY u.profession</code>
Copier après la connexion

Lequel est le plus rapide ?

Bien que ces deux requêtes semblent fonctionnellement équivalentes, leurs performances peuvent varier en fonction de l'optimiseur de requêtes. Généralement, SELECT DISTINCT est légèrement plus rapide.

C'est parce que GROUP BY regroupe par défaut toutes les colonnes visibles. Dans ce cas, étant donné qu'aucune autre colonne n'est utilisée dans la requête, l'optimiseur devra peut-être effectuer un travail supplémentaire pour déterminer si le regroupement n'a pas de sens. D'un autre côté, SELECT DISTINCT demande explicitement une valeur unique.

Conclusion

Dans la plupart des cas, la différence de performances entre SELECT DISTINCT et GROUP BY est négligeable. Cependant, si l'optimisation est critique, il est recommandé d'utiliser SELECT DISTINCT car cela simplifie la tâche de l'optimiseur de requêtes.

Astuce : Pour obtenir des résultats concluants, il est recommandé de toujours tester les deux méthodes dans un environnement de suivi des performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal