Dans les requêtes SQL/MySQL, la jointure séparée par des virgules est-elle moins efficace que la jointure par mot-clé ?
Lors de l'écriture de requêtes de base de données, vous rencontrez souvent une syntaxe qui utilise des virgules pour séparer les jointures sans utiliser le mot-clé JOIN. Bien que cette méthode ressemble à INNER JOIN, elle peut affecter l’efficacité. Cet article explore les raisons de l'utilisation du mot clé JOIN et son impact sur les performances des requêtes.
Connexion virgule et connexion mot-clé
Traditionnellement, les jointures dans SQL/MySQL peuvent être réalisées en répertoriant les tables à l'aide de virgules (,), puis en filtrant à l'aide de la clause WHERE. Cette méthode est appelée « concaténation par virgule » :
<code class="language-sql">SELECT a.someRow, b.someRow FROM tableA AS a, tableB AS b WHERE a.ID=b.ID AND b.ID= $someVar</code>
Cependant, l'introduction du mot-clé JOIN fournit une syntaxe spécialisée pour définir explicitement les jointures :
<code class="language-sql">SELECT * FROM people p JOIN companies c ON p.companyID = c.id WHERE p.firstName = 'Daniel'</code>
Différence de performances
Bien que la concaténation par virgules accomplisse techniquement la même tâche que la concaténation de mots clés, des différences de performances peuvent survenir dans des circonstances spécifiques. En particulier, l'utilisation d'une clause WHERE dans une jointure par virgule pour un filtrage sans contrainte peut entraîner des inefficacités.
Par exemple, considérons la concaténation de virgules suivante :
<code class="language-sql">SELECT * FROM people p, companies c WHERE p.companyID = c.id AND p.firstName = 'Daniel'</code>
La plupart des bases de données interpréteront cette requête comme effectuant d'abord le produit cartésien des tables people et company. Ensuite, appliquez la clause WHERE pour identifier les enregistrements correspondants. Cette approche implique une surcharge importante puisque le produit cartésien peut donner lieu à d’énormes ensembles de données.
Avantages de la liaison par mots clés
L'utilisation du mot-clé JOIN présente les avantages suivants :
Suggestions
En fonction de considérations de performances et des avantages des jointures par mots clés, il est recommandé d'utiliser le mot clé JOIN dans toutes les requêtes. Bien que les requêtes de jointure par virgule existantes ne nécessitent pas de modification immédiate, la syntaxe des mots clés est recommandée pour se conformer aux normes modernes et améliorer la qualité du code.
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!