StefanRHRO: MySQL [5.0.67] Index verwirrt mich

Beitrag lesen

Hallo,

folgende Query:

SELECT c.tabelle_id, c.tabelle_clients_tel, c.tabelle_clients_handy, c.tabelle_prio
FROM cap_tabelle c
WHERE c.tabelle_campaign_status <=0
AND c.tabelle_status <=6
AND c.tabelle_inuse <=0
AND c.tabelle_prio <=6
AND c.tabelle_touch <=60
AND c.tabelle_wvdate <= now( )
ORDER BY c.tabelle_prio ASC , tabelle_touch ASC , tabelle_wvdate ASC

wird mittels eines Multiindexes in einem kleinen PHP Skript abgefackelt. Der MultiIndex (nennt man das überhaupt so?) ist wie im WHERE Bereich zu sehen aufgebaut, keine Varchars, Texte, Blobs oder ähnliches verstecken sich dahinter, sondern nur INT und ein DATETIME Feld [tabelle_wvdate]. Diese Abfrage braucht bei 653334 rund 5.5 sek. um ein Resultat zu geben. EXPLAIN sagt mir, dass er where für den WHERE Bereich benutzt, für das Sortieren aber filesort. Was mich daran wundert ist eine Aussage im Manual (7.2.12 ORDER BY-Optimierung) ich zitiere: "Der Index kann auch verwendet werden, wenn die ORDER BY-Klausel dem Index nicht exakt entspricht, solange alle nicht verwendeten Bestandteile des Indexes und alle zusätlichen ORDER BY-Spalten Konstanten in der WHERE Klausel sind. [...]" <-- Ist aber bei mir gegeben. Hat jemand evtl. ne Idee, wie ich das fixen könnte?

Grüße Stefan Riedel