Halihallo P.
Wenn ich aber folgendes mache:
....where datum >= '2004-01-10'..... nutzt mysql den Index nicht.
Nicht zwingend, ja. Aber MySQL wird den Index benutzen, sobald es
Sinn macht.
Kann mir jemand sagen, ob es einen besseren Vergleich gibt?
Nein.
Ich muß in Sache etwas mehr Geschwindigkeit bringen!
Das musst nicht du, das ist die Aufgabe der Datenbank [1]! Diese
entscheided wie eine Anfrage am schnellsten ausgeführt werden kann
und in deinem Beispiel muss sie einen Grund haben um den Index nicht
zu verwenden. Mögliche Ursachen die die Verwendung eines Index
unterbinden findest du in der Doku. Beispiele sind: Index, indem
der gesuchte Indexwert mehr als 30% der gesamten Tupel (Datensätze)
betrifft, zu kleine Tabelle... etc. Wenn bei dir z.B. 30% Datensätze
nach 2004-01-10 sind, wird MySQL deinen Index nicht benutzen.
Fazit: MySQL benutzt deinen Index, wenn es Sinn macht. Überlasse die
Entscheidung der Datenbank, denn sie weiss besser wann ein Index Sinn
macht (bzw. man kann es auch steuern, wenn sie sich mal irren
sollte).
[1] du gibst ihr lediglich Eckdaten/-information wie z.B. welche
Attribute als INDEX oder UNIQUE INDEX verwendet werden dürfen etc.
MySQL entscheided aber selber, ob die Verwendung des Index Sinn macht
oder nicht (das gibt es nämlich auch!).
Viele Grüsse
Philipp