MySQL Timeout bei kompliziertem JOIN [Gelöst]

  • ToBe ToBe
    Padawan
    0 x
    60 Beiträge
    0 Hilfreiche Beiträge
    11. 10. 2012, 11:01

    Hallo Leute,

    ich versuche einen (zugegeben etwas komplizierteren) Query abzusetzen und bekomme einen 500er Error. Habe nun versucht den Query über PHPMyAdmin auszufüren und dafür eine View anzulegen. Auch dort bekomme ich einen Timeout von der DB beim aufrufen der View. Er zeigt mir jedoch an, dass im Resultset der erstellten View etwas über 5000 Einträge sind.

    Der Support meinte nach einigem hin und her, dass der Speicher der Session der DB-Connection voll läuft und dann der PHP-Prozess einen Timeout bekommt. Die einzige Lösung, die mir angeboten wurde ist auf ein höheres Paket zu wechseln.

    Gibt es da vielleicht noch eine andere Lösung, oder mach ich bei meiner Abfrage irgendwas falsch?

    Hier der Query: (tabellenname hier vereinfacht und ja die Tabelle table_c wird doppelt gejoint)

    1. SELECT DISTINCT a.uid FROM table_a AS a
    2. LEFT OUTER JOIN table_b AS b ON b.uid = a.b_uid
    3. LEFT OUTER JOIN table_c AS c ON c.uid = b.c_uid
    4. LEFT OUTER JOIN table_d_mm AS d_mm ON d_mm.uid_local = a.b_uid
    5. LEFT OUTER JOIN table_e AS e ON d_mm.uid_foreign = e.uid
    6. LEFT OUTER JOIN table_c AS c2 ON e.c2_uid = c2.uid
    7. WHERE a.deleted = 0

    Grüße und Danke schonmal :-)

    Tobi


  • 1
  • ToBe ToBe
    Padawan
    0 x
    60 Beiträge
    0 Hilfreiche Beiträge
    16. 10. 2012, 16:28

    Ok habe das "Problem" gelöst.

    Die JOINS haben einfach zu viel Speicher gebraucht.
    Um ein Upgrade auf ein teureres Paket zu vermeiden haben wir die Business-Logic verändert und den JOIN auf 3 Tabellen reduziert.

    Funktioniert nun :-)

  • 1