sql >> Database >  >> RDS >> Mysql

Permanente PHP-MySQL-verbindingen gebruiken om WordPress Blog uit te voeren

Wanneer u verbinding maakt met de MySQL-database, gebruikt WordPress-weblog op basis van PHP-scripting standaard een niet-permanente verbinding. Dat wil zeggen, WordPress zal PHP activeren om een ​​nieuwe verbinding met de MySQL-server te genereren voor elk dynamisch paginaverzoek, en vervolgens de databaseverbinding sluiten zodra het bouwen van de webpagina is voltooid. Het herhaaldelijk openen en sluiten van MySQL-verbindingen veroorzaakt overheadkosten en verbruikt kostbare CPU-, geheugen- en systeembronnen op de webhost.

Het gebruik van een permanente verbinding om verbinding te maken met de MySQL-databaseserver is niet altijd een goede optie. Elke verbinding neemt bronnen in beslag, waaronder geheugen, buffers, tabel- of threadcaches intern in MySQL en sockets, open bestanden of IO-activiteit op OS-niveau. Dus wanneer veel persistente verbindingen worden geopend maar niet worden gesloten nadat transacties zijn voltooid, kunnen de bronnen op het systeem leeglopen en de prestaties van de webserver verminderen, of in het ergste geval HTTP-storingen veroorzaken. Bovendien, als een permanente verbinding is vastgelopen, inactief is of niet meer wordt gebruikt of niet meer wordt gebruikt, wordt deze niet beëindigd en zal de MySQL-server deze alleen sluiten om de door de verbinding in beslag genomen bron vrij te geven standaard na ongeveer 28800 seconden (8 uur), tenzij de time-outparameters in my.cnf-configuratiebestanden gewijzigd. Deze paar factoren kunnen problemen veroorzaken, zoals het weigeren van nieuwe DB-verbindingen door MySQL of een trage server als de applicaties persistente verbindingen niet goed afhandelen.

Dus als u geen ervaren webmaster bent, probeer dan niet om WordPress te veranderen om permanente verbindingen te gebruiken.

Voor bloggers die een drukke en grote blog hebben, en die te maken hebben met beperkingen bij het upgraden van de specificaties van het webhostsysteem, en die geen statische paginacaching-plug-in zoals WP-Cache willen gebruiken, is een permanente verbinding een beschikbare optie om de webserver af te stemmen en te optimaliseren om te zien of de webpaginaweergave sneller kan. Door een permanente verbinding kan de verbinding eenmaal open zijn en wordt deze niet gesloten wanneer de uitvoering van het script eindigt. In plaats daarvan wordt de link in pool bewaard en blijft deze open voor toekomstig gebruik. Het gebruik van permanente verbindingen elimineert dus het proces van het openen en sluiten van de verbinding. Dit vermindert indirect de MySQL-verbindingsgerelateerde serveroverhead, zoals authenticatie om verbinding tot stand te brengen waar slechts één keer nodig is, extra netwerkverkeer te besparen en middelen die worden gebruikt om extra verbindingen af ​​te handelen. Daarnaast kunnen er enkele caches op verbindingsniveau zijn, die moeten worden gevuld voor goede prestaties, en mogelijk het aantal verbindingen met de database verminderen.

WordPress gebruikt standaard de functie mysql_connect() die op elke pagina een nieuwe databaseverbinding tot stand brengt. Voor de permanente verbindingsfunctie is de functie mysql_pconnect() vereist die exact dezelfde API gebruikt, maar met ingebouwde pooling van verbindingen om verbindingen tussen verzoeken in stand te houden. Dus om over te schakelen naar het gebruik van een permanente verbinding om WordPress uit te voeren, moet de functie mysql_connect() worden vervangen door mysql_pconnect().

Om permanente verbindingen met WordPress in te schakelen en te gebruiken, logt u eenvoudig in op uw webhost met SSH (of onveilige Telnet) en wijzigt u de map naar de webroot-homedirectory waar de WordPress-blog is geïnstalleerd.

Zoek en bewerk de wp-config.php bestand, en voeg de volgende regels toe (of wijzig de volgende waarden als de constanten al bestonden):

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

WordPress en PHP (zolang u mysql.allow_persistent in PHP.INI niet uitschakelt) zullen onmiddellijk permanente verbindingen gebruiken om verbinding te maken met de MySQL-database. Het is de moeite waard om uit te proberen welke instelling het beste is voor uw omgeving.

De volgende stappen zijn ook uitvoerbaar, maar omvatten het hacken van het WordPress-kernbestand, en worden daarom niet aanbevolen, en worden alleen ter referentie in dit artikel achtergelaten.

Verander directory in wp-includes map. In de map wp-includes bevindt zich wp-db.php het dossier. Gebruik een teksteditor zoals vi om wp-db.php te bewerken. Zoek of zoek de functie van mysql_connect (of @mysql_connect ). Er is slechts één exemplaar van mysql_connect. Verander gewoon de mysql_connect in mysql_pconnect , sla dan de wp-db.php op en sluit deze af.


  1. fout, tekenreeks of binaire gegevens worden afgekapt bij een poging om in te voegen

  2. Foreign key naar een van de vele tabellen?

  3. Postgres:vacuümcommando ruimt dode tupels niet op

  4. Effectieve monitoring van MySQL met SCUMM-dashboards:deel één