PHP, SQL muss man close()?

2 Antworten

Nachdem das PHP-Skript abgearbeitet wurde, werden die belasteten Ressourcen automatisch freigegeben. Das heißt, die Datenbankverbindung wird auch geschlossen, ohne dass du explizit die close-Methode aufrufst.

Zusätzlich wird eine Verbindung, die sich im Leerlauf befindet, nach einer gewissen Zeit automatisch unterbrochen. Bei MySQL beträgt die Wartezeit standardmäßig ungefähr acht Stunden. Das aber nur so am Rande.

Nichtsdestotrotz lohnt es sich, die Verbindung schon früher zu schließen, sofern dein Skript sie nicht mehr braucht. So wird wieder eine neue Verbindungsstelle zur Datenbank frei. Gerade dann, wenn deine Webanwendung viele Nutzeranfragen bekommt, ist es wichtig, diese schnell abarbeiten zu können.

Schließe die Verbindung aber nicht nach jeder Einzelaktion (z.B. Anlegen einer Tabelle, Füllen der Tabelle, etc.), denn ein erneuter Verbindungsaufbau ist ebenso eine teure Aktion. Mit einer Verbindung je Request dürftest du im Regelfall bestens auskommen.

Wenn du die DB nicht mehr brauchst solltest du die Verbindung schließen. Wenn du jedoch noch Abfragen in absehbarer Zeit machen willst, dann nicht.

Vorteil vom Schließen:

Weniger Ressorucenverbrauch auf Server und Client, weil man diese Verbindung offen halten muss

Nachteil:

Wenn man eine neue DB-Abfrage macht dauert diese etwas länger, weil die Verbindung erst erstellt werden muss

Woher ich das weiß:Berufserfahrung – drei Jahre Berufserfahrung mit Wordpress