Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So steigern Sie die Leistung der SQL-Abfrage für die Auswahl aus 2 Tabellen

Leider erzwingt Ihr Datenbankdesign eine langsame Leistung.

Dadurch wird Ihr Leistungsproblem behoben:Sie sollten eine neue Tabelle (PRODUCT_INFO) erstellen und einen Fremdschlüssel erstellen, der auf den Primärschlüssel von produkty zeigt. Füllen Sie diese Tabelle mit den einzelnen Werten von ATTRIBUTE_CODE und ATTRIBUTE_VALUE.

SELECT pa.code
FROM ParametrickeVyhladavanie pa
WHERE EXISTS
(
SELECT 1 FROM produkty p
JOIN 
PRODUCT_INFO AS pi
ON    p.ProId = pi.ProduktID
WHERE pi.ATTRIBUTE_CODE = pa.Code
AND pi.ATTRIBUTE_VALUE = pa.ValueCode
AND p.KATEGORIA IN ('Mobily'))
GROUP BY pa.code