Est-ce que distinct affectera les performances ?

Table des matières:

Est-ce que distinct affectera les performances ?
Est-ce que distinct affectera les performances ?

Vidéo: Est-ce que distinct affectera les performances ?

Vidéo: Est-ce que distinct affectera les performances ?
Vidéo: La performance de l'entreprise 2024, Décembre
Anonim

Oui, car l'utilisation de DISTINCT entraînera (parfois selon un commentaire) l'ordre des résultats Trier des centaines d'enregistrements prend du temps. Essayez GROUP BY toutes vos colonnes, cela peut parfois conduire l'optimiseur de requête à choisir un algorithme plus efficace (du moins avec Oracle j'ai remarqué un gain de performances significatif).

Est-il mauvais d'utiliser distinct ?

Eh bien, une mauvaise utilisation de "distinct" masque non seulement le véritable problème (entrées en double dans les tables, absence de condition dans la clause on) comme indiqué ci-dessus, mais également dégrade les performances de la requête… Cela entraînera une augmentation significative du coût IO (lectures logiques) de la requête.

Distinct rend-il la requête plus lente ?

Très peu de requêtes peuvent s'exécuter plus rapidement en mode SELECT DISTINCT, et très peu s'exécuteront plus lentement (mais pas beaucoup plus lentement) en mode SELECT DISTINCT, mais pour le dernier cas, il est probable que l'application peut avoir besoin d'examiner les cas en double, ce qui déplace la charge de performance et de complexité vers l'application.

Est-il préférable d'utiliser distinct ou GROUP BY ?

Dans MySQL, DISTINCT semble un peu plus rapide que GROUP BY si le champ n'est pas indexé. DISTINCT n'élimine que les lignes en double mais GROUP BY semble les trier en plus.

Pourquoi ne devrions-nous pas utiliser distinct en SQL ?

Si select distinct est là pour "résoudre" un problème, vous risquez d'obtenir une mauvaise performance en retour. GROUP BY vous permet d'utiliser des fonctions d'agrégation, telles que AVG, MAX, MIN, SUM et COUNT. DISTINCT supprime simplement les doublons.

Conseillé: