mit PHP und MySQLWie optimiert man MySQL Abfrage, wenn ich zu viele OR-Operatoren in meiner Abfrage habe?
Ich habe eine Reihe von Facebook-Benutzer-IDs von Facebook gegriffen.
Jetzt möchte ich den entsprechenden Benutzernamen in meiner Anwendung für dieses Array finden.
Offensichtlich in meiner Anwendung enthält die Benutzertabelle eindeutigen Benutzernamen und eindeutige fb_uid Werte.
mein rudimentäres Verständnis oof Programmierung führte mich zu 2 Möglichkeiten:
1) eine Schleife verwenden und durch die Anordnung von fb_uid laufen und den Benutzernamen einer nach dem anderen zu finden.
OR
2) ein Monster Abfrage wie select distinct (Benutzername erstellen) von den Benutzern wo fb_uid = Wert1 OR fb_uid = Wert2 ...
so gibt es einen besseren Weg?
Vielen Dank.
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html # function_in - Nach diesem Link ist die maximale Anzahl von Werten für IN in MySQL nur durch die max_packet_size begrenzt. Also ... wie viele Werte du dort festhältst, kann wahrscheinlich ziemlich groß sein, aber Tests sind erforderlich, um _how_ large zu finden. Ansonsten mag ich deine Antwort: +1. – nilamo
Ich vermutete, dass dies Auswirkungen auf die Performance haben könnte - das ist eher der Grund, warum ich nicht zu viele Werte in das IN() gesetzt habe; Allerdings muss ich zugeben, dass ich diesbezüglich keine MySQL-Benchmarks gemacht habe ^^ –