Maison >base de données >tutoriel mysql >JOIN ou WHERE : lequel est le plus rapide pour les requêtes de base de données avec des relations de clé étrangère ?
JOIN vs. WHERE : lequel est le plus rapide pour les requêtes de base de données ?
Dans le monde des requêtes de bases de données, la vitesse est cruciale. Lorsque vous avez deux tables liées par une clé étrangère, comme Document et DocumentStats, vous pouvez vous demander si l'utilisation d'une clause JOIN ou WHERE est plus rapide pour récupérer des données.
Question :
Considérez la requête suivante :
SELECT * FROM Document, DocumentStats WHERE DocumentStats.Id = Document.Id AND DocumentStats.NbViews > 500
Une requête alternative utilisant un INNER JOIN est :
SELECT * FROM Document INNER JOIN DocumentStats ON Document.Id = DocumentStats.Id WHERE DocumentStats.NbViews > 500
Quelle requête s'exécute plus rapidement, ou sont-elles équivalentes ?
Réponse :
Théoriquement, les deux requêtes devraient s'exécuter aussi rapidement que l'optimiseur de requêtes optimise le plan d'exécution. Cependant, en pratique, le moteur de base de données peut produire de meilleurs plans d'exécution pour l'une des requêtes, notamment pour les opérations plus complexes.
En bref, il est préférable de tester les deux requêtes sur votre moteur de base de données pour déterminer laquelle est la plus performante. . Cependant, vous pouvez généralement vous attendre à ce qu'ils aient des vitesses comparables pour des requêtes simples.
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!