mysql abfrage optimieren

max@hismac

Aktives Mitglied
Thread Starter
Registriert
05.03.2004
Beiträge
1.803
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...
 

max@hismac

Aktives Mitglied
Thread Starter
Registriert
05.03.2004
Beiträge
1.803
So, bin mal auf

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

umgestiegen.
 

pmau

Aktives Mitglied
Registriert
13.02.2008
Beiträge
6.104
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.
 

Registrierung oder Anmeldung bei MacUser.de

Du musst bei uns Mitglied sein, um einen Beitrag schreiben zu können.

Benutzerkonto erstellen

Erstelle ein kostenloses Benutzerkonto für Macuser.de

Log in

Besitzt du schon ein Benutzerkonto? Hier anmelden.

Oben