Où existe-t-il par rapport aux performances de jointure ?
Où existe-t-il par rapport aux performances de jointure ?

Vidéo: Où existe-t-il par rapport aux performances de jointure ?

Vidéo: Où existe-t-il par rapport aux performances de jointure ?
Vidéo: [28] Jointures en PHP ! Comment coder une relation N-N 1-N 2024, Mars
Anonim

Dans la plupart des cas, EXISTE ou REJOINDRE sera beaucoup plus efficace (et plus rapide) qu'une instruction IN. Avec un EXISTE ou un REJOINDRE , la base de données renverra vrai/faux lors de la vérification de la relation spécifiée. À moins que la table de la sous-requête ne soit très petite, EXISTE ou REJOINDRE fonctionnera bien mieux que IN.

En outre, où existe-t-il par rapport aux performances de jointure interne ?

2 réponses. En général, JOINTURE INTERNE et EXISTE sont des choses différentes. Si vous faites un jointure interne sur une colonne UNIQUE, ils présentent les mêmes performance . Si vous faites un jointure interne sur un jeu d'enregistrements avec DISTINCT appliqué (pour se débarrasser des doublons), EXISTE est généralement plus rapide.

Deuxièmement, LEFT JOIN est-il plus rapide que join ? UNE JOINT GAUCHE n'est absolument pas plus rapide que un INTÉRIEUR REJOINDRE . En fait, c'est plus lent; par définition, un extérieur rejoindre ( JOINT GAUCHE ou DROITE REJOINDRE ) doit faire tout le travail d'un INTÉRIEUR REJOINDRE plus le travail supplémentaire d'extension nulle des résultats.

De cette façon, qui est le plus rapide existe ou dans?

Les EXISTE clause est beaucoup plus rapide que IN lorsque les résultats de la sous-requête sont très volumineux. Inversement, la clause IN est plus rapide que EXISTE lorsque les résultats de la sous-requête sont très petits. De plus, la clause IN ne peut rien comparer avec les valeurs NULL, mais le EXISTE clause peut tout comparer avec des valeurs NULL.

Quel SQL JOIN est le plus rapide ?

Eh bien, en général JOINTURE INTERNE sera plus rapide car il ne renvoie que les lignes correspondant à toutes les tables jointes en fonction de la colonne jointe. Mais à GAUCHE REJOINDRE renverra toutes les lignes d'une table spécifiée à GAUCHE et toutes les lignes correspondantes d'une table spécifiée à DROITE.

Conseillé: