Hallo,
Meine Frage ist aber, soll ich für jede Spalte einen Index anlegen oder kann ich diese kombinieren. Bzw. wo ist der Vorteil/Nachteil von kombinierten Indexes
*seufz*
Wozu habe ich mir gestern für Dich soviel Arbeit gemacht?
Wir gehen mal von folgender beispiel Tabellstruktur aus
artikelnr | available | produktname
1 | 1 | artikel 1
2 | 1 | artikel 2
3 | 0 | artikel 3
In diesem Fall - wie würde ich am besten den Index anlegen?!?
Einfache Antwort: Bei sowenig Daten benötigt man überhaupt keinen Index.
ADD INDEX
INDEX
(artikelnr
,available
)
oder
ADD INDEXINDEX
(artikelnr
)
ADD INDEXINDEX
(available
)Die Tabelle wird wie folgt abgefragt
SELECT * FROM artikel WHERE available='1'
SELECT * FROM artikel WHERE available='1' AND artikelnr='2'
ok, Du hast in Wirklichkeit deutlich mehr Daten in Deiner Tabelle.
Also mach das, was ich gestern gemacht habe: Teste es durch und nutze endlich selbst EXPLAIN, um herauszufinden, welcher Index bzw. welche Indexe genutzt werden.
Ein Index auf available wird wahrscheinlich höchst selten genutzt werden, weil er - wie dedlfix schon ausgeführt hat - die Menge der Datensätze nur in geringem Maße einschränken kann.
Überlege Dir bitte selbst, welches Kriterium bei Deiner zweiten Abfrage am stärksten einschränkt. Ist das so schwer?
Freundliche Grüße
Vinzenz