mixmastertobsi: MySQL Subquery sehr langsam

Beitrag lesen

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'