phpbar.de logo

Mailinglisten-Archive

query optimieren

query optimieren

Michael Donning donning at informenta.de
Mit Feb 26 12:13:44 CET 2003


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