[db2] Performancesteigerung durch Selektivität

oraclin25

Erfahrenes Mitglied
Hallo zusammen:)

ich habe einmal von einem Datenbank-Experte gehört, dass man die Laufzeit-Performance einer SQL-Anfrage durch Selektivität erhöhen könnte. Ich habe leider nicht wirklich verstanden wie damit gemeint ist. Gegoogelt und gegoogelt:
Selektivität ist das Verhältnis:
[Anzahl der betroffenen Records]/[Gesamtanzahl der Records]

Mhh.. kann mir jemand vielleicht aufklären?

Vielen Dank.

Schöne Grüße aus Rheinland,
Eure Ratna
 
Die Selektivität ist ein Hinweis darauf, ob ein Index auf dieser Spalte überhaupt Sinn macht oder nicht.

Beispiel:
Du hast eine Benutzertabelle mit 1000 Datensätzen. Spalte 1 enthält die eindeutige ID, Spalte 2 enthält das Geschlecht Spalte 3 enthält den vollen Namen.

Spalte 1 hat eine hohe Selektivität, da die ID immer eindeutig ist. Ein Index auf diese Spalte wird sehr wahrscheinlich oft verwendung finden.

Spalte 2 hat eine niedrige Slelektivität, da hier nur 2 Werte auftauchen (männlich oder weiblich). Ein Index auf diese Spalte macht relativ wenig Sinn, da unter Umständen trotz des Index noch sehr viele Datensätze nachbleiben, die durchsucht werden müssen.

Spalte 3 enthält den vollen Namen und ist daher in der Regel auch eher eindeutig und damit sehr selektiv. Hier macht ein Index wieder Sinn.

Du siehst auch in PhpMyAdmin immer einen Hinweis auf die Selektivität der Spalten. Oftmals wird es auch "Kardinalität" genannt.
 
Zurück