Mir ist anhand der Beschreibung nicht ganz klar, was alles (welche Tab Inhalte) rauskommen sollen (Das Select * from ... ist nicht sehr aussagekräftig). Die Relationen des "Basisselects" und der gewünschten Ergebnismenge ebenfalls unklar.
@DeddyH: Du könntest Recht haben, aber so einfach ist es offenbar nicht. Ich stell mir einen Baum vor, aus der er alle Geschwister eines bekannten Elements haben möchte...
Grundsätzlich: Keine Ahnung vom
mySql optimizer, aber der ist sicher auch von Menschen programmiert worden. Also gilt zunächst die Faustregel, das Statement mit der größten Selektivität ist als Hauptstatement anzusiedeln. Den (hoffentlich kleinen) Output ein 2. Mal Joinen mit der eigentlich gewünschten Menge.
In dem langsamen Statement sieht es so aus, als ob es umgekehrt läuft:
Bau eine Riesenergebnismenge von allen Daten der 3 Tabellen und dann erst filtere bitte gemäß where Bedingung 5 Sätze davon raus.
Ist natürlich alles Spekulation ohne Tabellenstruktur, Ausfürungsplan und Indizierung.