Hallo,
ich habe eine MySQL abfrage, die sehr langsam ist. Wenn ich die Abfragen "einzeln" nacheinander Abfrage, ist es wesentlich schneller. An was liegt das?
LANGSAM
SELECT
if(ai14.value IS NOT NULL, (SELECT value FROM auftrag_info as ai14_2 WHERE ai14_2.value=auftrag_ship.id AND ai14_2.auftragnr!=auftrag_ship.auftragnr), NULL) as result
FROM auftrag_ship
JOIN auftrag_ship_fortras ON auftrag_ship_fortras.auftrag_ship_id=auftrag_ship.id
LEFT JOIN auftrag_info as ai14 on ai14.auftragnr=auftrag_ship.auftragnr AND ai14.value=auftrag_ship.id WHERE auftrag_ship.auftragnr='1'
schnell
SELECT ai14.value as id, auftrag_ship.auftragnr
FROM auftrag_ship
JOIN auftrag_ship_fortras ON auftrag_ship_fortras.auftrag_ship_id=auftrag_ship.id
LEFT JOIN auftrag_info as ai14 on ai14.auftragnr=auftrag_ship.auftragnr AND ai14.value=auftrag_ship.id WHERE auftrag_ship.auftragnr='1'
=> nächte Abfrage, wenn nicht NULL
SELECT value as result FROM auftrag_info WHERE auftrag_info.value='$id' AND ai14_2.auftragnr!='$auftragnr'