liquidbeats
Erfahrenes Mitglied
Nabend,
ich stehe momentan vor dem Problem mich mit dem JOIN an sich weiter auseinander zu setzen zu müssen.
Bisher habe ich i.d.R LEFT JOIN benutzt. Vorteil war dieser, das ich auf nix weiter achten musste, ergebnisse waren immer wie gewünscht. Das dies jedoch nicht so Performant gewesen ist, war bis dato egal. Bei 20 Datensätzen macht dies den Kohl auch nicht Fett.
Jetzt habe ich jedoch ein Performance Problem. Die Datenbank beinhaltet, von mir Testweise 5000 eingetragene Datensätze. Um genau zu sein sind es 5284.
Ich habe 3 Tabellen die es gilt in das Statement mit einzubeziehen.
Die Haupttabelle, immobilien
Die Tabelle für Texte, freitexte
und die Tabelle für Bildmaterial, anhaenge
In allen Tabellen findet sich eine ID wieder "immobilien_id", die dafür gedacht ist, sämtliche Datensätze miteinander zu verknüpfen, was auch klappt.
Zum Aufbau möchte ich folgendes sagen.
Primär ist die Tabelle immobilien wichtig, in dieser sind 5200 Datensätze, in der Tabelle freitexte finden sich ebenfalls 5200 wieder, die mit dem Passenden gegenstück in der Tabelle immobilien verknüpft sind (immobilien_id).
Die Tabelle anhaenge hingegen hat nur 17 einträge, wobei dort mehrere einträge ein und dem selben eintrag von immobilien zugeordnet sind.
Eben dem Motto, ein Objekt hat 2 Bilder das andere nur eines und andere wiederum keine Bilder zugeordnet bekommen.
Ziel ist es, alle Datensätze, unabhängig davon ob Passende Daten in der Tabelle anhaenge bereit stehen, zu selektieren und auszugeben. Mit LEFT JOIN klappt das, jedoch ist die Ausführungszeit Katerstrophal, diese beträgt mehrere Minuten.
INNER JOIN scheint mir da Performanter zu sein, Problem ist jedoch dass ich genau 17 Datensätze, eben die anzahl aus der Tabelle anheange bekomme. Wenn ich jetzt DISTINCT und GROUP BY immobilien.immobilien_id nutze verbleiben Logischerweise nur noch 6 Resultierende Datensätze.
Hat jemand einen Vorschlag für mich?
Ein Deutsches tutorial bezüglich MySQL wäre ebenfalls nicht schlecht, wenn jemand eines Empfehlen kann. Ich bin jetzt an dem Punkt angekommen wo ich merke das mein Wissen in diesem bereich ungenügend ist.
Vielen Dank
Grüße
ich stehe momentan vor dem Problem mich mit dem JOIN an sich weiter auseinander zu setzen zu müssen.
Bisher habe ich i.d.R LEFT JOIN benutzt. Vorteil war dieser, das ich auf nix weiter achten musste, ergebnisse waren immer wie gewünscht. Das dies jedoch nicht so Performant gewesen ist, war bis dato egal. Bei 20 Datensätzen macht dies den Kohl auch nicht Fett.
Jetzt habe ich jedoch ein Performance Problem. Die Datenbank beinhaltet, von mir Testweise 5000 eingetragene Datensätze. Um genau zu sein sind es 5284.
Ich habe 3 Tabellen die es gilt in das Statement mit einzubeziehen.
Die Haupttabelle, immobilien
Die Tabelle für Texte, freitexte
und die Tabelle für Bildmaterial, anhaenge
In allen Tabellen findet sich eine ID wieder "immobilien_id", die dafür gedacht ist, sämtliche Datensätze miteinander zu verknüpfen, was auch klappt.
Zum Aufbau möchte ich folgendes sagen.
Primär ist die Tabelle immobilien wichtig, in dieser sind 5200 Datensätze, in der Tabelle freitexte finden sich ebenfalls 5200 wieder, die mit dem Passenden gegenstück in der Tabelle immobilien verknüpft sind (immobilien_id).
Die Tabelle anhaenge hingegen hat nur 17 einträge, wobei dort mehrere einträge ein und dem selben eintrag von immobilien zugeordnet sind.
Eben dem Motto, ein Objekt hat 2 Bilder das andere nur eines und andere wiederum keine Bilder zugeordnet bekommen.
Ziel ist es, alle Datensätze, unabhängig davon ob Passende Daten in der Tabelle anhaenge bereit stehen, zu selektieren und auszugeben. Mit LEFT JOIN klappt das, jedoch ist die Ausführungszeit Katerstrophal, diese beträgt mehrere Minuten.
INNER JOIN scheint mir da Performanter zu sein, Problem ist jedoch dass ich genau 17 Datensätze, eben die anzahl aus der Tabelle anheange bekomme. Wenn ich jetzt DISTINCT und GROUP BY immobilien.immobilien_id nutze verbleiben Logischerweise nur noch 6 Resultierende Datensätze.
Hat jemand einen Vorschlag für mich?
Ein Deutsches tutorial bezüglich MySQL wäre ebenfalls nicht schlecht, wenn jemand eines Empfehlen kann. Ich bin jetzt an dem Punkt angekommen wo ich merke das mein Wissen in diesem bereich ungenügend ist.
Vielen Dank
Grüße