[MySQL] Index korrekt einsetzen

versuch13

Erfahrenes Mitglied
Hey. Ich habe eine Tabelle mit ungefähr folgenden Feldern (ein Blog):

id | headline | body | date_time | categorie | flag |

MySQL Version 4

Nun habe ich einen Index über drei Spalten, über die letzten drei, also über "flag, categorie, date_time" (in dieser Reihenfolge).

Eine Abfrage für eine bestimmte Kategorie des Blogs sieht dann etwa so aus:

Code:
SELECT id, headline, body, date_time 
FROM articles
WHERE flag = 1 AND cat = x
ORDER BY date_time
LIMIT 0,10

In dem Fall wird der Index richtig genutzt.

Nun werden auf der Übersicht aber alle Kategorien ausgelesen.

Code:
SELECT id, headline, body, date_time 
FROM articles
WHERE flag = 1
ORDER BY date_time
LIMIT 0,10

Das heißt in der WHERE Klausel taucht die Spalte "categorie" nicht auf.
Hier wird der Index dann nicht richtig genutzt, bzw. erhalte ich eine "using filesort" Meldung.

Lege ich einen zweiten Index, nur über "flag, date_time" meldet mir PHPMyAdmin dass ich das nicht machen kann/sollte. (MySQL 4)

Wie gehe ich hier vor, damit nun das "using filesort" los werde?

Vielen Dank.
 
Zuletzt bearbeitet:
Zurück