kostenloser Webspace werbefrei: lima-city


Performanceverlust bei Datenbankzugriff

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    eisfeld

    eisfeld hat kostenlosen Webspace.

    Hallo zusammen,

    ich sitze da so da und überlege mir wie ich aus meinem PHP Script auf die Datenbank zu greifen werde. Da fällt mir ein, dass ich mal gelesen habe, dass man bei jedem Zugriff eine neue Verbindung aufbauen und danach wieder schließen soll.

    Kann mir Jemand den Unterschied [vorallem in anbetracht der Zeit] zwischen den zwei folgenden Abläufen erklären?
    Bei welcher Methode habe ich mehr Zeitverlust.

    1.

    <?PHP
    //Verbindung zur DB wird aufgebaut

    ...

    //etwas wird aus der DB ausgelesen

    ...

    //etwas wird in die DB eingefügt


    ...

    //etwas wird aus der DB ausgelesen

    ...

    //etwas wird in die DB eingefügt


    //Verbindung zur DB wird beendet
    ?>

    2.

    <?PHP
    //Verbindung zur DB wird aufgebaut
    //etwas wird aus der DB ausgelesen
    //Verbindung zur DB wird beendet

    ...

    //Verbindung zur DB wird aufgebaut
    //etwas wird in die DB eingefügt
    //Verbindung zur DB wird beendet

    ...

    //Verbindung zur DB wird aufgebaut
    //etwas wird aus der DB ausgelesen
    //Verbindung zur DB wird beendet

    ...

    //Verbindung zur DB wird aufgebaut
    //etwas wird in die DB eingefügt
    //Verbindung zur DB wird beendet
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich denke mal, dass du davon ausgehen kannst, dass es auf jeden Fall zeitaufwendiger sein wird, für jede Query eine neue Verbindung aufzubauen.

    Davon abgesehen wüsste ich nicht, was dagegen spricht immer dieselbe Verbindung zu benutzen, insofern du nicht mehrere Datenbanken benutzt.

    Gruß
    styVe (qap2-Team)
  4. Stelle am Anfang deines Scripts eine Verbindung her und nutze sie die ganze Zeit, das ist schneller. Wenn du PDO benutzt, kannst du sogar über PDO::ATTR_PERSISTENT eine persistente Verbindung erstellen, d.h. sie wird nach Beenden deines Scripts weiterhin gecacht.

    Wenn du viele ähnliche Queries ausführst (und PDO benutzt) kannst du mit Prepared Statements auch noch Geschwindigkeit rausholen.

    Aber ansonsten, mach dir um Performance mal keine Sorgen. Oder wenn du Performanceprobleme wirklich hast, dann seh zu, dass deine Datenbank normalisiert bist und deine Queries performant sind. Da wirst du viel mehr Performance bekommen, also auf PHP-Ebene zu zaubern ;)
  5. @qap2
    ..., insofern du nicht mehrere Datenbanken benutzt.
    du brauchst für mehrere (beliebig viele) datenbanken nicht mehr als eine einzige verbindung! die verbindung ist nämlich nicht für die datenbank(en), sondern für den datenbank-server zuständig. und der ist bei LC immer nur ein server.
  6. @czibere
    ... ... ...
    ... ja ne echt?

    @eisfeld
    Benutze einfach eine einzige Verbindung, die du ganz zu Beginn deines Scriptes aufbaust. Performance-technisch wird alles andere eher in die falsche Richtung führen. :-)

    Gruß
    styVe (qap2-Team)
  7. n****a

    Am Anfang deines Scripts öffnest du deine Verbindung. Nachdem das Script abgearbeitet wurde schliesst sich die Verbindung automatisch. Somit ist ein $db->close() hinfällig. Natürlich musst du sie auf deiner nächsten Seite wieder öffnen.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!