Maison >base de données >tutoriel mysql >Les clés étrangères accélèrent-elles les requêtes ?
Clés étrangères et performances des requêtes
Bien que les clés étrangères jouent un rôle crucial dans le respect de l'intégrité référentielle, leur impact sur les performances des requêtes est souvent mal compris. Contrairement à la croyance populaire, les clés étrangères elles-mêmes n'améliorent pas de manière significative les performances des requêtes.
Dans le scénario fourni, une requête joint deux tables, Products et ProductCategories, en utilisant le champ CategoryId comme condition de jointure. Malgré la relation de clé étrangère, le plan de requête affiche une analyse d'index de cluster sur la table Products. En effet, SQL Server ne crée pas automatiquement d'index basés sur des clés étrangères.
Pour améliorer les performances de cette requête, un index doit être créé explicitement sur le champ Products.CategoryId. Après avoir créé l'index, le plan d'exécution affiche les recherches d'index sur les deux tables, réduisant considérablement le coût estimé du sous-arbre.
Par conséquent, les réponses aux questions posées sont les suivantes :
La clé étrangère améliore-t-elle les performances des requêtes ?
Dois-je créer un index sur toutes les colonnes FK de toutes les tables ?
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!