tab1 ist eine Tabelle mit etwa 200.000 Datensätzen. Kann es sein, dass erst die ganzen Joins stattfinden und danach erst das WHERE ausgewertet wird? (In meinen Tests war das meiner Meinung nach nicht der Fall)
Was für Test's? was sagt Explain?
Ignorieren wir mal meine Tests. Diese sind nichts sagend habe ich gerade festgestellt. :P
Ich hab mal den Explain durchgeführt:
phpMyAdmin liefert mir 4 Datensätze.
Der erste ist ein SIMPLE select type auf tab1 mit "using where" und "using filesort". Allerdings mit "type=ALL" und "possible_keys=NULL" :X Ich schätze dass man hier noch optimieren kann.
Die nächsten 3 Datensätze sind die Joins und haben alle einen Eintrag unter possible_keys (und zwar Unique-Spalten). Der type von diesen ist eq_ref.
Was ich nicht verstehe ist, warum tab1 "possible_keys=NULL" ist. Denn der WHERE-Vergleich findet auf einer unique-Spalte statt.