Hallo,
ich habe eine MySQL Abfrage, welche ich etwas beschleunigen möchte. Ich versuche diese einfach darzustellen und hoffe, dass ihr versteht, was ich möchte.
Ich habe eine Artikel-Datenbank und möchte, dass manche Artikel nicht angezeigt werden, wenn andere Artikel dafür angezeigt werden. Die Abfrage funktioniert, aber bei mehr als 10.000 Artikel ist die Abfrage nicht die schnellste und ich versuche diese etwas zu optimieren.
Die Abfrage aktuell sieht (ähnlich) wie folgt aus
SELECT * FROM artikel
LEFT JOIN artikel_info ON artikel_info.aid=artikel.aid AND artikel_info.value IN (
SELECT artikel.aid FROM artikel
WHERE artikel.kategorie LIKE '10%'
)
WHERE artikel.kategorie LIKE '10%' AND artikel.aid IS NULL
LIMIT 10
Ich lade also in der Datenbank also zwei mal die ganzen Artikelnummern und gleiche dann ab, ob diese in artikel_info.value vorkommen.
Index ist auf artikel_info.aid und artikel_info.value gesetzt