Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von persistenten PHP-MySQL-Verbindungen zum Ausführen des WordPress-Blogs

Beim Verbinden mit der MySQL-Datenbank verwendet das auf PHP-Skripting basierende WordPress-Weblog standardmäßig eine nicht dauerhafte Verbindung. Das heißt, WordPress löst PHP aus, um für jede dynamische Seitenanforderung eine neue Verbindung zum MySQL-Server zu generieren, und schließt anschließend die Datenbankverbindung, sobald die Webseitenerstellung abgeschlossen ist. Das wiederholte Öffnen und Schließen von MySQL-Verbindungen verursacht Overheads und verbraucht wertvolle CPU-, Speicher- und Systemressourcen auf dem Webhost.

Die Verwendung einer dauerhaften Verbindung zum Herstellen einer Verbindung zum MySQL-Datenbankserver ist nicht immer eine gute Option. Jede Verbindung beansprucht Ressourcen, einschließlich Speicher, Puffer, Tabellen- oder Thread-Caches intern in MySQL und Sockets, offene Dateien oder IO-Aktivität auf Betriebssystemebene. Wenn also viele dauerhafte Verbindungen geöffnet, aber nach Abschluss der Transaktionen nicht geschlossen werden, können die Ressourcen auf dem System ablaufen und die Leistung des Webservers beeinträchtigen oder im schlimmsten Fall einen HTTP-Fehler verursachen. Darüber hinaus wird eine dauerhafte Verbindung nicht beendet, wenn sie ins Stocken gerät, inaktiv ist oder nicht mehr funktioniert oder nicht mehr verwendet wird, und der MySQL-Server wird sie standardmäßig nur nach etwa 28800 Sekunden (8 Stunden) schließen, um die von der Verbindung belegte Ressource freizugeben, es sei denn die Timeout-Parameter in den my.cnf-Konfigurationsdateien geändert. Diese wenigen Faktoren können zu Problemen führen, wie z. B. MySQL, das neue DB-Verbindungen ablehnt, oder zu langsamen Servern, wenn die Anwendungen dauerhafte Verbindungen nicht richtig handhaben.

Wenn Sie also kein erfahrener Webmaster sind, versuchen Sie bitte nicht, WordPress so zu ändern, dass dauerhafte Verbindungen verwendet werden.

Für Blogger, die einen geschäftigen und großen Blog haben und Einschränkungen bei der Aktualisierung von Webhost-Systemspezifikationen haben und kein statisches Seiten-Caching-Plugin wie WP-Cache verwenden möchten, ist eine dauerhafte Verbindung eine verfügbare Option zum Einstellen und Optimieren des Webservers um zu sehen, ob die Webseitenbereitstellung schneller sein kann. Persistente Verbindung ermöglicht das einmalige Öffnen der Verbindung und wird nicht geschlossen, wenn die Ausführung des Skripts endet. Stattdessen wird der Link im Pool gehalten und bleibt für die zukünftige Verwendung offen. Daher wird durch die Verwendung dauerhafter Verbindungen der Prozess des Öffnens und Schließens der Verbindung eliminiert. Dies reduziert indirekt den mit der MySQL-Verbindung verbundenen Server-Overhead, wie z. Außerdem könnten einige Caches auf Verbindungsebene vorhanden sein, die für eine ordnungsgemäße Leistung aufgefüllt werden müssen und möglicherweise die Anzahl der Verbindungen zur Datenbank verringern.

Standardmäßig verwendet WordPress die Funktion mysql_connect(), die auf jeder Seite eine neue Datenbankverbindung herstellt. Die Funktion für dauerhafte Verbindungen erfordert die Funktion mysql_pconnect(), die genau dieselbe API verwendet, aber über ein integriertes Verbindungspooling verfügt, um Verbindungen zwischen Anforderungen am Leben zu erhalten. Um also zur Verwendung einer dauerhaften Verbindung zum Ausführen von WordPress zu wechseln, muss die Funktion mysql_connect() durch mysql_pconnect() ersetzt werden.

Um dauerhafte Verbindungen mit WordPress zu aktivieren und zu verwenden, melden Sie sich einfach mit SSH (oder unsicherem Telnet) bei Ihrem Webhost an und wechseln Sie in das Webroot-Home-Verzeichnis, in dem der WordPress-Blog installiert ist.

Suchen und bearbeiten Sie die wp-config.php Datei, und fügen Sie die folgenden Zeilen hinzu (oder ändern Sie sie in die folgenden Werte, wenn die Konstanten bereits vorhanden sind):

define('USE_PCONNECT', true);
define('WP_CACHE', false);

WordPress und PHP (solange Sie mysql.allow_persistent in PHP.INI nicht deaktivieren) verwenden sofort dauerhafte Verbindungen, um sich mit der MySQL-Datenbank zu verbinden. Es lohnt sich auszuprobieren, welche Einstellung für Ihre Umgebung am besten geeignet ist.

Die folgenden Schritte sind ebenfalls praktikabel, beinhalten jedoch das Hacken der WordPress-Kerndatei und werden daher nicht empfohlen und in diesem Artikel nur als Referenz aufgeführt.

Ändern Sie das Verzeichnis in wp-includes Verzeichnis. Im wp-includes-Verzeichnis befindet sich wp-db.php Datei. Verwenden Sie einen beliebigen Texteditor wie vi, um wp-db.php zu bearbeiten. Suchen oder finden Sie die Funktion von mysql_connect (oder @mysql_connect ). Es gibt nur eine Instanz von mysql_connect. Ändern Sie einfach mysql_connect in mysql_pconnect , dann speichere und beende die wp-db.php.