Luzi: Optimierung von MySQL-Code

Beitrag lesen

Hallo zusammen

Ich habe jetzt viel über Join-Anweisungen gelesen. Jedoch habe ich es nicht fertig gebracht, dieses MYsql-Statement zu optimieren:

SELECT * FROM woerter WHERE id = '1226160' OR ( original = '1226160' AND sprache1 = 'asdf' AND sprache2 = 'asdfaa' AND ( SELECT refresh FROM buecher WHERE id = ( SELECT buchid FROM lektionen WHERE id = lektionenid )) = '1')

Das System ist so aufgebaut, dass es eine table "buecher" gibt. Als zweites ein table "lektionen". Es verweisen meistens mehrere lektionen auf ein Buch (per lektionenid). Und dann noch "woerter". Es verweisen auch hier meistens mehrere Wörter auf eine Lektion (per lektionenid).
Das Ziel der Abfrage ist es, alle Wörter, die entweder die gleiche ID oder (die gleiche "Original-ID" (Feld: "original"), eine gegebene "sprache1", eine gegebene "sprache2" und das Feld "refresh", des Buches = '1' ist).

Die Tabelle Wörter hat etwa 700'000 Einträge, Lektionen etwa 20'000 und Bücher etwa 1200.
Das Ausführen dauert zur Zeit etwa 1.5 Sekunden. Kann man da (mit Joins) irgendetwas vereinfachen.

Ich hoffe ihr könnte mir weiterhelfen.