Ik heb een query waarvan het uitvoeren wel 4 minuten duurt. Hoe kan ik er voor zorgen dat dit sneller gaat?
Het zit zo. Ik heb een tabel met producten, deze worden geupload naar een website. Als ze geupload zijn komen ze in de tabel done, als het niet lukt (door gebrek aan gegevens) komen ze in de tabel notdone.
De query die de producten ophaalt kijkt of de producten al niet in de tabel done of notdone staan. De producten die er niet instaan en dus nog moeten worden geupload stuurt hij terug.
Maar het probleem is dat die er 4 minuten over doet om de query uit te voeren. De CPU load zie je ook gelijk naar 100% schieten.
Dus hoe o hoe kan ik dit sneller laten gaan?
Dit is de query:
- Code: Selecteer alles
SELECT k.code, k.naam, leverancier.prijs, leverancier.maat
FROM producten AS k, leverancier
WHERE leverancier.prijs > 0
AND leverancier.naam = k.naam
AND k.code NOT IN (SELECT code FROM done WHERE DONE = 1)
AND k.code NOT IN (SELECT code FROM notdone WHERE NOTDONE = 1)
ORDER BY leverancier.prijs ASC
LIMIT 1,2