Mailinglisten-Archive |
Hallo Oliver, > -----Original Message----- > From: Oliver Wiemer [mailto:o.wiemer at audiovisuellemedien.de] > ich habe folgende query am laufen. > > select gentiltplane.* from gentiltplane LEFT JOIN workgentilt > ON gentiltplane.id = workgentilt.id > where workgentilt.fertig is NULL > AND gentiltplane.aufsetzdatum > '0000-00-00' > AND gentiltplane.aufsetzdatum < '2003-03-01' > limit 0,25 > > Die Daten werden immer mehr, und die Laufzeit auch immer länger. > Gibt es eine elegantere Lösung? Kann es sein, daß die Bedingung workgentilt.fertig=null nicht so oft vorkommt? Dann gleich einen Index drauf setzen. Es sei denn die Bedingung soll prüfen, ob es überhaupt einen Match in dem Left Join gibt. Möchtest Du gerne 25 zufällige Sätze auswählen ? Denn genau das macht Deine Abfrage, alles andere ist Glück/Zufall. Du hast keine Sortierung angegeben, wie sollen da die ersten 25 Sätze eindeutig festgelegt sein? Notfalls kann man ja mehrere Anläufe nehmen und das erste aufsetzdatum beim ersten Versuch in einen Abstand (- n Monate) setzen in dem mit großer Wahrscheinlichkeit 25 Treffer erzielt werden, sollte dies nicht der Fall sein, die Suche dann komplett ausführen. Grüße Michael Donning -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive