Servus,
seit MySQL 5.1.x verursachen die dependent subqueries wegen eines Bugs extreme Performanceprobleme und führen bis zum Totalausfall des Servers. In MySQL 5.6 soll der Fehler behoben sein - bis die aber zum Standard wird, vergehen sicher noch einige Jahre.
Per EXPLAIN wird die Subquery über die products_images Tabelle als dependet subquery deklariert:
Unter MySQL 4.1 und 5.0 hat das ohne Probleme funktioniert.
Da ich kein MySQL-Profi bin, brauche ich einen Rat wie ich per JOINs in möglichst einer Query das gleiche Ergebnis bekomme.
Wenn es aus der Situation keinen Ausweg gibt, muss ich die products_images Tabelle in einer seperaten Query auslesen - diesen Weg würde ich aber nur ungern gehen, da ich die Anzahl der Datenbankabfragen pro Skriptlauf möglichst gering halten will.
MfG aGeNET
seit MySQL 5.1.x verursachen die dependent subqueries wegen eines Bugs extreme Performanceprobleme und führen bis zum Totalausfall des Servers. In MySQL 5.6 soll der Fehler behoben sein - bis die aber zum Standard wird, vergehen sicher noch einige Jahre.
Per EXPLAIN wird die Subquery über die products_images Tabelle als dependet subquery deklariert:
Code:
SELECT p.products_id, pd.products_name, (
SELECT pi.images_file
FROM products_images pi
WHERE pi.products_id = p.products_id
LIMIT 1
) AS products_image
FROM products p
LEFT JOIN products_description pd
ON ( p.products_id = pd.products_id AND pd.language_id = '2' )
LEFT JOIN products_to_categories p2c
ON p2c.products_id = p.products_id
WHERE p.products_status = '1'
AND p2c.categories_id NOT
IN ( 1, 2, 3, ..., n );
Da ich kein MySQL-Profi bin, brauche ich einen Rat wie ich per JOINs in möglichst einer Query das gleiche Ergebnis bekomme.
Wenn es aus der Situation keinen Ausweg gibt, muss ich die products_images Tabelle in einer seperaten Query auslesen - diesen Weg würde ich aber nur ungern gehen, da ich die Anzahl der Datenbankabfragen pro Skriptlauf möglichst gering halten will.
MfG aGeNET