Ich hab hier einen MySQL-Query, der auch wunderbar funktioniert, nur leider bei einer Tabelle mit knapp 2 Mio Einträgen ewig lange braucht und die Serverload in unerträgliche Höhen treibt.
Verbal:
Vorgegeben wird eine Kundennumer [COLOR=darkblue]$customid[/COLOR]. Es soll nun ermittelt und ausgeben werden, ob jemand mit anderer Kundennummer aber identischer IP im Zeitraum +/- [COLOR=darkblue]$szeit[/COLOR] eine Bestellung getätigt hat, d.h. einen Eintrag in der Tabelle 'order' generiert hat.
Funzt syntaktisch, die Ausgabe ist korrekt, aber es daauuuert ...
Hab ich da einen Knoten im Hirn gehabt, d.h. lässt sich die Abfrage performanter gestalten?
Ach ja, läuft auf MySQL 4.1.10a mit PHP 4.3.10
PHP-Code:
SELECT SQL_BUFFER_RESULT orderid, ipadress, customid, customname, dateline
FROM order t1,order t2
WHERE t1.ipaddress=t2.ipaddress AND t1.customid!=t2.customid
AND t2.dateline>(t1.dateline-$szeit) AND t2.dateline<(t1.dateline+$szeit)
AND t1.customid=$customid
ORDER BY t1.ipaddress, t1.dateline
Vorgegeben wird eine Kundennumer [COLOR=darkblue]$customid[/COLOR]. Es soll nun ermittelt und ausgeben werden, ob jemand mit anderer Kundennummer aber identischer IP im Zeitraum +/- [COLOR=darkblue]$szeit[/COLOR] eine Bestellung getätigt hat, d.h. einen Eintrag in der Tabelle 'order' generiert hat.
Funzt syntaktisch, die Ausgabe ist korrekt, aber es daauuuert ...
Hab ich da einen Knoten im Hirn gehabt, d.h. lässt sich die Abfrage performanter gestalten?
Ach ja, läuft auf MySQL 4.1.10a mit PHP 4.3.10
Kommentar