Fremdschlüssel und Abfrageleistung
Während Fremdschlüssel eine entscheidende Rolle bei der Durchsetzung der referenziellen Integrität spielen, wird ihr Einfluss auf die Abfrageleistung oft missverstanden. Entgegen der landläufigen Meinung verbessern Fremdschlüssel selbst die Abfrageleistung nicht wesentlich.
Im bereitgestellten Szenario verknüpft eine Abfrage zwei Tabellen, Products und ProductCategories, wobei das CategoryId-Feld als Join-Bedingung verwendet wird. Trotz der Fremdschlüsselbeziehung zeigt der Abfrageplan einen Cluster-Index-Scan für die Tabelle Products an. Dies liegt daran, dass SQL Server nicht automatisch Indizes basierend auf Fremdschlüsseln erstellt.
Um die Leistung dieser Abfrage zu verbessern, sollte explizit ein Index für das Feld Products.CategoryId erstellt werden. Nach der Erstellung des Index zeigt der Ausführungsplan Indexsuchen für beide Tabellen an, wodurch die geschätzten Teilbaumkosten erheblich reduziert werden.
Daher lauten die Antworten auf die gestellten Fragen wie folgt:
Verbessert der Fremdschlüssel die Abfrageleistung?
Soll ich einen Index für alle FK-Spalten in allen Tabellen erstellen?
Das obige ist der detaillierte Inhalt vonBeschleunigen Fremdschlüssel Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!