Ilja: Subquery eigentlich unkorreliert, MySQL meint aber korreliert

Beitrag lesen

yo,

Leider sind deine Subqueries korreliert. Sie brauchen bei mir knapp 30 Sekunden, sind also langsamer ;-(

ich benutze korrelierte abfragen jeden tag mehrfach über mehrere tabellen, die millionen einträge haben. wenn diese bei dir zu langsam sind, dann hast du keine geeigneten indexe angelegt, wie der fleißige Vinz schon darauf hingewiesen hat. die abfrage mit deinem wirklichen kleinen datenbestand sollte ratz fatz gehen.

was du brauchst ist auf jeden fall ein index in der tabelle products auf die spalte id_products. desweiteren einen zusammengesetzten index auf die tabelle id_lists mit den spalten id_products, id_lists. es kann sein, dass du die beiden bedingungen in der where klausel in einer anderen reihenfolge schreiben musst, je nachdem welches dbms du benutzt und welche version. aber wenn die indexe greifen, dann kann deine abfrage keine sekunden mehr dauern, auch wenn sie korreliert sind.

Ilja