Hi Cheatah,
Kann es sein, dass mySQL pro Abfrage und Tabelle nur einen Index
benutzt ?
ja. In wievielen Indizes mit widersprüchlichen Ergebnissen sollte
es denn Deiner Meinung nach sonst arbeiten? Würden mehrere Indizes
verwendet werden, könnte es im Grunde auch gleich einen Full Table
Scan machen - der Organisationsaufwand, mehrere Indizes zu verknüp-
fen, würde den Geschwindigkeitsvorteil wieder wett machen.
Das ist eine Frage der Projektivität der Indexe.
Wenn ich mit zwei Indexzugriffen jeweils 0.0001% der Datensatzmenge
isolieren und dies dann mit sich selbst JOINen könnte, dann wäre das
rasend schnell, verglichen mit einem full table scan.
Wenn Du mehrere Indizes für sinnvoll hälst, hast Du den Fehler
gemacht, sie nur einspaltig anzulegen.
Vielleicht. Meistens sogar. Aber nicht immer.
Stell Dir vor, Du willst einen Präfix-Match gegen mehrere Indexe fahren:
SELECT <fields> FROM <tablename>
WHERE <field1> LIKE 'x%'
AND <field2> LIKE 'y%';
Bilde das mal mit einem einzigen Index über beiden Spalten nach ...
Viele Grüße
Michael