Tobias Otto: mysql5 datenbank hängt manchmal

hallo,

es kommt manchmal vor, dass in unserem Shop die seite ewig lang nicht geladen wird. Ich denke es liegt an der mysql abfrage, da ich die selbe seite z.b. 10 mal aufrufen kann und diese lange ladezeit dann erst beim 11 mal auftritt. was sollte man als erstes optimieren, damit die mysql besser läuft

  1. Moin!

    es kommt manchmal vor, dass in unserem Shop die seite ewig lang nicht geladen wird. Ich denke es liegt an der mysql abfrage, da ich die selbe seite z.b. 10 mal aufrufen kann und diese lange ladezeit dann erst beim 11 mal auftritt. was sollte man als erstes optimieren, damit die mysql besser läuft

    Ich glaube pauschal erstmal nicht, dass es an MySQL liegt. Aber wissen kann ich es, genauso wie du, natürlich erst, wenn entsprechende Analysen die Ursache belegen.

    Loggst du die Zeit, die für Abfragen verbraten wird? Und für andere Aktionen auch? Wieviele Abfragen machst du überhaupt? Lesende und/oder schreibende? Indices passend gesetzt? Tabellentreiber MyISAM, InnoDB, sonstiges? CPU-Last? Art der DB-Anbindung mit connect oder pconnect?

    Es gibt so wahnsinnig viele Faktoren, warum das Gesamtsystem nicht laufen kann - warum du ausgerechnet auf "Datenbank hängt" kommst, hast du jedenfalls nicht hinreichend erklärt.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo,

      leider kann ich nicht sagen was für tabellentreiber installiert sind, da dies eine mysql datenbank auf einem strato webhosting ist.

      wie baue ich denn zeitlogger ein.

      1. Moin!

        leider kann ich nicht sagen was für tabellentreiber installiert sind, da dies eine mysql datenbank auf einem strato webhosting ist.

        Du hast PHPMyAdmin oder könntest es auf deinem Webspace haben - und kriegst damit auch diese Information.

        Es kann bei solchen Massenhoster-Datenbanken durchaus sein, dass die Antwortzeiten ungenügend sind. Das liegt aber dann nicht immer nur an DEINEN Querys, sondern oft einfach daran, dass der DB-Server zuviel mit ANDEREN Userabfragen zu tun hat. Das heißt, du kannst sowieso nichts optimieren.

        Und du kannst grundsätzlich nichts optimieren, wenn du nicht messen kannst, ob sich objektiv etwas verbessert hat. Wenn du meinst, dass sich eine Seite zu langsam aufbaut, mußt du die Zeit messen, die diese Seite tatsächlich benötigt. Und nach einer Veränderung mußt du das erneut messen. Nur wenn sich objektiv die Zeit verringert hat, war deine Veränderung erfolgreich - wobei auch noch abzugrenzen ist, ob die bessere Zeit nicht vielleicht durch unbeachtete Nebeneffekte eingetreten ist, z.B. unterschiedliche Auslastung beteiligter Komponenten.

        wie baue ich denn zeitlogger ein.

        http://www.php.net/microtime, an passenden Stellen aufgerufen, liefert dir die Uhrzeiten. Bildest du die Differenz, hast du die verbrauchte Zeit zwischen zwei Aufrufen. Sicherlich gibts für sowas auch vorgefertigte Klassen oder Funktionen, die dir viel Arbeit abnehmen und direkt aussagekräftige Ergebnisse schön gestaltet auf den Bildschirm zaubern.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. n'abend,

          Du hast PHPMyAdmin oder könntest es auf deinem Webspace haben - und kriegst damit auch diese Information.

          und wer keinen PMA zur Hand hat, kann sich SHOW TABLE STATUS anschauen.

          weiterhin schönen abend...

          --
          #selfhtml hat ein Forum?
          sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|