Vinzenz Mai: ein MySQL-Query dauert zu lange

Beitrag lesen

Hallo Cheatah,

ich persönlich nutze die JOIN-Syntax nur dann, wenn ich einen Outer-Join habe. Ansonsten tut es auch ein Select über mehrere Tabellen mit entsprechenden WHERE-Bedingungen.

das tut weh. Nein, das ist keine gute Idee. Eine Idee aus dem letzten Jahrtausend, als es noch antiquierte DBMSe gab, die die JOIN-Syntax nicht verstanden bzw. nur die eigene proprietäre JOIN-Syntax. Solchen Systemen kommt heute keine Bedeutung mehr zu. Saubere Join-Syntax liefert viel verständlichere Statements als JOIN-Bedingungen mit der WHERE-Klausel zu verquicken. Du solltest Deine Einstellung ändern.

Das würde ich dann als Array aus division_id(s) bekommen, z.B. [23, 123, 42, 23, 63, 311, 312]
Ergo benötigst Du auf (mindestens) dieser Spalte einen Index.

Das Problem ist jetzt, ich hab keinen blassen Schimmer, wie ich das alles Geschwindigkeitsmäßig so schnell wie möglich machen kann, denn genau diese Daten werden sehr oft abgefragt. Kann mir jemand ein paar Tipps geben?

Jeena:
Aus welchem Grund LEFT JOIN. Benötigst Du alle Mannschaften, auch wenn sie keinen Divisions zugeordnet sind? Fehlen Dir wirklich Datensätze, wenn Du zwei INNER JOINS verwendest?

Rouvens Einführung Joins gibt Dir übrigens den Tipp mit der Tabelle anzufangen, die die wenigsten Werte hat, d.h. in Deinem Fall ganz bestimmt die divisions.

Freundliche Grüße

Vinzenz