mysql abfrage optimieren

max@hismac

Aktives Mitglied
Thread Starter
Dabei seit
05.03.2004
Beiträge
1.797
Reaktionspunkte
158
moin, habe ein kleines problem, aber denke, hilfe ist nah:

ich habe zwei tabellen, eine (1) mit token, frage, antwort und eine (2) mit token und nutzer. nun möchte ich eine abfrage starten, die alle werte aus tabelle 1 sucht, deren token für einen nutzer xy nicht in tabelle 2 enthalten ist. ich mache das momentan mit left join, allerdings dauert die abfrage ewig.

SELECT DISTINCT * from `tabelle1` LEFT JOIN `tabelle2` ON tabelle1.token=tabelle2.token WHERE !((tabelle2.user IS NOT NULL) && (tabelle2.user like "xy")) ORDER BY RAND() LIMIT

jetzt her mit euren verbesserungen...
 
So, bin mal auf

SELECT DISTINCT * from `tabelle1`WHERE (token NOT IN (SELECT token FROM tabelle2 WHERE user LIKE "xy"))

umgestiegen.
 
Schreib doch mal "EXPLAIN" vor das "SELECT".
Dann kannst Du sehen, ob MySQL einen Index benutzt, einen Full Table Scan machen muss oder sogar eine temporäre Datei anlegt.
 
Zurück
Oben Unten