Indexselektivität ist ein Schlüsselfaktor bei der Optimierung der SQL-Abfrageleistung. Sie misst, wie gut ein Index Daten filtert und beeinflusst die Geschwindigkeit des Datenabrufs. Das Verständnis und die Berechnung der Indexselektivität können Datenbankadministratoren dabei helfen, die Abfrageeffizienz zu verbessern, indem sie die effektivsten Indizes auswählen.

Was ist Index-Selektivität?

Indexselektivität bezieht sich auf den Anteil eindeutiger Werte in einer Spalte im Verhältnis zur Gesamtzahl der Zeilen. Hohe Selektivität zeigt an, dass die Spalte viele eindeutige Werte hat, wodurch Indizes effektiver werden. Im Gegensatz dazu legt niedrige Selektivität viele doppelte Werte nahe, was die Nützlichkeit des Index verringert.

Berechnung der Indexselektivität

Die Formel für die Indexselektivität ist einfach:

Selektivität = Anzahl der eindeutigen Werte / Gesamtzahl der Zeilen

Wenn eine Tabelle beispielsweise 1.000 Zeilen und eine Spalte mit 900 eindeutigen Werten hat, beträgt die Selektivität 0,9, was auf eine hohe Effektivität für die Indexierung hinweist.

Real Data Beispiel

Man denke an eine Tabelle mit Kundendaten mit 10.000 Zeilen. Die Spalte "Land" enthält 50 eindeutige Ländernamen. Die Selektivität ist:

0.005 = 50 / 10.000

Diese geringe Selektivität legt nahe, dass die Indexierung der Spalte "Land" die Abfrageleistung möglicherweise nicht signifikant verbessert, sondern stattdessen die Konzentration auf Spalten mit höherer Selektivität, wie "Kunden-ID", die 10.000 eindeutige Werte hat, wäre vorteilhafter.

Implikationen für Query Optimierung

Die Berechnung der Indexselektivität hilft bei der Entscheidung, welche Spalten indexiert werden sollen. Spalten mit hoher Selektivität sind typischerweise bessere Kandidaten für die Indexierung, was zu einer schnelleren Abfrageausführung führt. Spalten mit niedriger Selektivität sind möglicherweise besser für andere Optimierungsstrategien oder zusammengesetzte Indizes geeignet.