Maison > base de données > tutoriel mysql > Les jointures de style virgule dans SQL sont-elles moins efficaces que les mots-clés JOIN explicites ?

Les jointures de style virgule dans SQL sont-elles moins efficaces que les mots-clés JOIN explicites ?

Linda Hamilton
Libérer: 2025-01-08 08:12:43
original
159 Les gens l'ont consulté

Are Comma-Style Joins in SQL Less Efficient Than Explicit JOIN Keywords?

Comparaison de l'efficacité des jointures par virgules et des mots-clés JOIN explicites en SQL

Les premières requêtes SQL, lorsque les développeurs n'étaient pas familiers avec le mot-clé JOIN, utilisaient souvent le format suivant :

<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>
Copier après la connexion

Alors que les développeurs commencent à utiliser INNER JOIN, une question se pose : ces anciennes requêtes doivent-elles être réécrites ?

Impact sur les performances

Bien que cette requête soit syntaxiquement valide, elle peut avoir un impact sur les performances dans certains cas. Considérez la requête suivante :

<code class="language-sql">SELECT * FROM people p, companies c
WHERE p.companyID = c.id AND p.firstName = 'Daniel'</code>
Copier après la connexion

De nombreuses bases de données calculent d'abord le produit cartésien de toutes les lignes des deux tables avant le filtrage. Pour de grands ensembles de données, cela serait très inefficace.

Bonnes pratiques

Pour éviter ces problèmes de performances, il est recommandé d'utiliser explicitement le mot-clé JOIN. La requête réécrite suivante organise les contraintes plus efficacement :

<code class="language-sql">SELECT * FROM people p JOIN companies c ON p.companyID = c.id
WHERE p.firstName = 'Daniel'</code>
Copier après la connexion

Cette méthode demande directement à la base de données d'effectuer des opérations de jointure au lieu de calculer un produit cartésien complet, augmentant ainsi la vitesse et réduisant l'empreinte mémoire.

Résumé

Bien que les anciennes requêtes utilisant la syntaxe "virgule join" fonctionnent correctement, il est recommandé de les mettre à jour pour utiliser le mot-clé JOIN. Cela améliore non seulement la lisibilité, mais résout également les problèmes de performances potentiels.

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