_King Lully: Subquery eigentlich unkorreliert, MySQL meint aber korreliert

Beitrag lesen

  
SELECT  
 id_products  
FROM  
 products  
WHERE  
 id_products NOT IN  
  (  
  SELECT DISTINCT  
   id_products  
  FROM  
   prods_lists  
  )  

Hier ist ja offensichtlich, dass die Subquery unabhängig ist, aber MySQL schreibt bei Explain "Dependent subquery" hin und die ganze Query braucht immer noch 15 Sekunden.

Wie ist denn eine dependent und eine independent subquery definiert?

Wenn ich das Ergebnis dieser Subquery manuell in die "NOT-IN-Liste" eintrage, ist das Ergebnis sofort da.

Eventuell einen Index auf 'id_products' in 'prods_lists' setzen.

Für "possible_keys" nennt MySQL beim äußeren select "NULL", bei "keys " aber "PRIMARY".

Was heisst das denn?

(Ach ja, bitte sinnvolle variablennamen wählen!)