Wario: "Datenbanküberhitzung" ?

Tagchen

Also ich hab mal eine Frage bezüglich Datenbankabfragen.

Ich habe zum Beispiel im wbb gesehen, dass die Einstellungen alle in einer mysql Datenbank abgespeichert werden. Folglich müssen diese Einstellungen ja bei jedem Laden einer Seite aus der Datenbank ausgelesen werden. Wenn dann ein paar Dutzend User gleichzeitig dort unterwegs sind, müsste ja der Server abstürzen, weil da ja ständig wahnsinnig viel aus der Datenbank ausgelesen wird.

Frage: wird das da irgendwie anders gemacht (also zwischengespeichert oder so) oder sind mysql Datenbanken für so viel Auslesen ausgelegt und werden nicht wirklich eingebremst?

Eine 2. Frage hätte ich auch noch:

wie kann man alle mysql Queries und deren gesamte Abfragedauer ausgeben? Gibts da spezielle Funktionen in PHP oder ist das schwerer?
Bin für jeden Tipp dankbar.

Danke, Wario

  1. Moin Moin !

    Tagchen

    Also ich hab mal eine Frage bezüglich Datenbankabfragen.

    Ich habe zum Beispiel im wbb gesehen, dass die Einstellungen alle in einer mysql Datenbank abgespeichert werden. Folglich müssen diese Einstellungen ja bei jedem Laden einer Seite aus der Datenbank ausgelesen werden. Wenn dann ein paar Dutzend User gleichzeitig dort unterwegs sind, müsste ja der Server abstürzen, weil da ja ständig wahnsinnig viel aus der Datenbank ausgelesen wird.

    Wieso das denn? Nur kaputte Programme und Programme auf defekter Hardware stürzen ab.

    Frage: wird das da irgendwie anders gemacht (also zwischengespeichert oder so) oder sind mysql Datenbanken für so viel Auslesen ausgelegt und werden nicht wirklich eingebremst?

    Ja. Gerade MySQL hat eine starke Leseoptimierung (man könnte auch Schreibschwäche sagen), generell stört es aber relationale Datenbanksysteme nicht, richtig hart zu arbeiten. Erfahrungsgemäß können sie um so härter arbeiten, je weniger Microsoft-Software im Spiel ist.

    Eine 2. Frage hätte ich auch noch:

    wie kann man alle mysql Queries und deren gesamte Abfragedauer ausgeben? Gibts da spezielle Funktionen in PHP oder ist das schwerer?

    Wenn MySQL sowas kann, steht's im Handbuch. Suchworte profiling oder query analyser.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
  2. Hallo Wario,

    oder sind mysql Datenbanken für so viel Auslesen ausgelegt und werden nicht wirklich eingebremst?

    Naja, gebremst wird sie schon, aber so gut wie jede Datenbank hält 12 Anfragen innerhalb von kurzer Zeit durchaus aus. Und MySQL ist sehr stark auf Leseperformance ausgelegt. Andererseits könnte man sich diese Anfrage wirklich sparen, die globale Konfiguration könnte man genausogut in einer Datei ablegen. (Frag doch mal beim Hersteller nach)

    wie kann man alle mysql Queries und deren gesamte Abfragedauer ausgeben? Gibts da spezielle Funktionen in PHP oder ist das schwerer?

    Schau Dir mal das Beispiel bei dieser Funktion an: http://de3.php.net/microtime

    Viele Grüße,
    Christian