Timo: Verbindung jedes mal schließen, oder offen halten

Hallo,

ich habe eine Seite deren Inhalte aus einer Datenbank kommt. Sollte man eine Datenbankverbindung (mySQL) eigentlich nach jeder Abfrage schließen, oder ist es sinnvoller sie offen zu halten, da sie eh auf jeder Seite gebraucht wird.

mfg timo

  1. 你好 Timo,

    ich habe eine Seite deren Inhalte aus einer Datenbank kommt. Sollte man
    eine Datenbankverbindung (mySQL) eigentlich nach jeder Abfrage schließen,
    oder ist es sinnvoller sie offen zu halten, da sie eh auf jeder Seite
    gebraucht wird.

    Die Umstaende musst du genauer beschreiben. Was meinst du mit “offen
    halten”? Was meinst du mit “nach jeder Abfrage schliessen”?

    再见,
     CK

    --
    Der Mund ist das Portal zum Unglück.
    http://wwwtech.de/
    1. Hallo

      Die Umstaende musst du genauer beschreiben. Was meinst du mit “offen
      halten”? Was meinst du mit “nach jeder Abfrage schliessen”?

      Es ist ein kleines CMS, wo wirklich nach jeder Aktion des Benutzers eine Datenbankabfrage stattfindet. Es ist auch nicht so, das sich der Benutzer lange auf einer Seite befindet, sondern eher schnell seine Sachen administriert und dann verschwindet, deshalb weiß ich nicht ob ich die Datenbankverbindung offen lassen soll oder immer wieder schließen soll?

      mfg timo

      1. 你好 Timo,

        Die Umstaende musst du genauer beschreiben. Was meinst du mit “offen
        halten”? Was meinst du mit “nach jeder Abfrage schliessen”?

        Es ist ein kleines CMS, wo wirklich nach jeder Aktion des Benutzers eine
        Datenbankabfrage stattfindet. Es ist auch nicht so, das sich der Benutzer
        lange auf einer Seite befindet, sondern eher schnell seine Sachen
        administriert und dann verschwindet, deshalb weiß ich nicht ob ich die
        Datenbankverbindung offen lassen soll oder immer wieder schließen soll?

        Was bedeutet denn «nach jeder Abfrage schliessen»? Fuer die Dauer des
        Requests kannst du doch problemlos die Verbindung offen halten, da spricht
        ja nichts gegen.

        Wenn du persistente Datenbank-Verbindungen benutzt (also mit mysql_pconnect
        arbeitest) solltest du aber Zugriff auf die Server-Konfiguration haben, da
        dann doch ein wenig Fein-tuning angesagt ist -- sonst kommt es zu lustigen
        Fehlermeldungen wie “Max. number of connections exceeded”.

        再见,
         CK

        --
        Zu wissen, was wir nicht wissen, ist die Quelle der Weisheit.
        http://wwwtech.de/
        1. Hello,

          Wenn du persistente Datenbank-Verbindungen benutzt (also mit mysql_pconnect
          arbeitest) solltest du aber Zugriff auf die Server-Konfiguration haben, da
          dann doch ein wenig Fein-tuning angesagt ist -- sonst kommt es zu lustigen
          Fehlermeldungen wie “Max. number of connections exceeded”.

          Davor kommt es bei den Meisten noch zu

          "10 is not a valid mysql-result ressource" oder so ähnlich

          Dann wurde vergessen, die Result-Handler auch wieder zurückzugeben, bevor man sie erneut benutzt.
          Das ist nämlich der Nebeneffekt einer persistenten Verbindung, dass man besonders sauber arbeiten muss, was das Ressourcen-Handling betrifft. Es gibt dann ja niemanden, der einem das abnimmt.

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
  2. Hallo

    ich habe eine Seite deren Inhalte aus einer Datenbank kommt. Sollte man eine Datenbankverbindung (mySQL) eigentlich nach jeder Abfrage schließen, oder ist es sinnvoller sie offen zu halten, da sie eh auf jeder Seite gebraucht wird.

    So ich nicht irre, werden Datenbankverbindungen, die mit serverseitigen Skripten geöffnet wurden, bei Skriptende automatisch geschlossen. Sie müssen also in einem anderen Skript oder bei Neuaufruf eines Skripts auch neu geöffnet werden.

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    Veranstaltungsdatenbank Vdb 0.1
    1. 你好 Auge,

      So ich nicht irre, werden Datenbankverbindungen, die mit serverseitigen
      Skripten geöffnet wurden, bei Skriptende automatisch geschlossen.

      Du irrst. Es gibt in fast jeder Sprache Mechanismen Datenbank-Verbindungen
      persistent anzulegen, bei PHP waere das mysql_pconnect im MySQL-Fall.

      再见,
       CK

      --
      Ich bewundere wirklich den Sinn der Bienen für kollektive Verantwortung. Obwohl sich einzelne Bienen hin und wieder bekämpfen, herrscht zwischen Ihnen grundsätzlich ein starkes Gefühl für Eintracht und Zusammenarbeit. Wir Menschen gelten als sehr viel weiter entwickelt, doch mitunter rangieren wir sogar hinter kleinen Insekten.
      http://wwwtech.de/
      1. Hallo

        So ich nicht irre, werden Datenbankverbindungen, die mit serverseitigen
        Skripten geöffnet wurden, bei Skriptende automatisch geschlossen.

        Du irrst. Es gibt in fast jeder Sprache Mechanismen Datenbank-Verbindungen
        persistent anzulegen, bei PHP waere das mysql_pconnect im MySQL-Fall.

        Das stimmt natürlich. Ich brauchte die persistente Verbindung bisher noch nicht, so ließ sich diese Möglichkeit leicht verdrängen.

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        Veranstaltungsdatenbank Vdb 0.1
  3. Hello,

    ich habe eine Seite deren Inhalte aus einer Datenbank kommt. Sollte man eine Datenbankverbindung (mySQL) eigentlich nach jeder Abfrage schließen, oder ist es sinnvoller sie offen zu halten, da sie eh auf jeder Seite gebraucht wird.

    Das hängt davon ab, wieviele User Du für Datenbankzugriffe einrichtest unst benutzt.
    Der PHP-Normalprogrammierer lässt ohnehin alle Queries unter ein und demselben User ausführen.
    Es gibt eine persistente Datenbankverbindung http://de2.php.net/manual/de/function.mysql-pconnect.php, deren Vorteil aber sehr stark von den Belastungszuständen abhängig ist.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  4. Hi,

    ich habe eine Seite deren Inhalte aus einer Datenbank kommt. Sollte man eine Datenbankverbindung (mySQL) eigentlich nach jeder Abfrage schließen, oder ist es sinnvoller sie offen zu halten, da sie eh auf jeder Seite gebraucht wird.

    "schnellstmoeglich zumachen die Verbindung" ist die richtige Antwort. Also auf jeden Fall "nach" Ausfuehren des Scripts, also typischerweise am "Scriptende".

    Gruss,
    Ludger