Hallo zusammen,
ich bräuchte mal ein wenig Unterstützung in Sachen Kardinalität und der korrekten Definition eines Indizes.
Ich dachte bisher, ich hätte es begriffen, aber wenn dem so wäre, würde eine Abfrage, an der ich gerade hänge, nicht so träge sein.
Daher bitte ich darum, mit kurz zu sagen, ob ich hier ein Verständnisproblem habe.
Angenommen, in meiner WHERE Clause befinden sich 5 Felder, nach denen ich suche.
Feld_1: rund 40.000 verschiedene Werte in Tabelle
Feld_2: rund 4.000 verschiedene Werte
Feld_3: rund 4.000
Feld_4: rund 80
Feld_5: rund 60
Alle Suchfelder befinden sich in der gleichen Tabelle.
Aufgrund meiner Recherchen war ich bisher der Meinung, man legt die Reihenfolge absteigend der Felder im Index in der Reihenfolge nach der Anzahl verschiedener Werte fest.
Die oben genannte Anzahl der versch. Werte habe ich mit folgender Syntax ermittelt:
SELECT feld,COUNT(feld) as anzahl FROM `tabelle` GROUP BY feld;
EXPLAIN sagt, dass er den Index auch verwendet hat, daher gehe ich davon aus, dass ich oben genannte Vorgehensweise falsch angewendet habe.
Hat jemand einen Rat?
Viele Grüße
Boris
ich bräuchte mal ein wenig Unterstützung in Sachen Kardinalität und der korrekten Definition eines Indizes.
Ich dachte bisher, ich hätte es begriffen, aber wenn dem so wäre, würde eine Abfrage, an der ich gerade hänge, nicht so träge sein.
Daher bitte ich darum, mit kurz zu sagen, ob ich hier ein Verständnisproblem habe.
Angenommen, in meiner WHERE Clause befinden sich 5 Felder, nach denen ich suche.
Feld_1: rund 40.000 verschiedene Werte in Tabelle
Feld_2: rund 4.000 verschiedene Werte
Feld_3: rund 4.000
Feld_4: rund 80
Feld_5: rund 60
Alle Suchfelder befinden sich in der gleichen Tabelle.
Aufgrund meiner Recherchen war ich bisher der Meinung, man legt die Reihenfolge absteigend der Felder im Index in der Reihenfolge nach der Anzahl verschiedener Werte fest.
Die oben genannte Anzahl der versch. Werte habe ich mit folgender Syntax ermittelt:
SELECT feld,COUNT(feld) as anzahl FROM `tabelle` GROUP BY feld;
EXPLAIN sagt, dass er den Index auch verwendet hat, daher gehe ich davon aus, dass ich oben genannte Vorgehensweise falsch angewendet habe.
Hat jemand einen Rat?
Viele Grüße
Boris