sql >> Databasteknik >  >> RDS >> Mysql

Använda PHP-MySQL Persistent Connections för att köra WordPress-blogg

När du ansluter till MySQL-databasen kommer WordPress-webblogg baserad på PHP-skript att använda en icke-beständig anslutning som standard. Det vill säga, WordPress kommer att trigga PHP för att generera en ny anslutning till MySQL-servern för varje dynamisk sidförfrågan, och därefter stänga databasanslutningen när webbsidebyggandet är klart. Upprepad öppning och stängning av MySQL-anslutningar orsakar omkostnader och förbrukar värdefulla CPU-, minnes- och systemresurser på webbhotellet.

Att använda beständig anslutning för att ansluta till MySQL-databasserver är inte alltid ett bra alternativ. Varje anslutning tar upp resurser, inklusive minne, buffertar, tabell- eller trådcacher internt i MySQL och sockets, öppna filer eller IO-aktivitet på OS-nivå. Så när många ihållande anslutningar öppnas men inte stängs efter att transaktioner har slutförts, kan resurserna på systemet tömmas och försämra webbserverns prestanda, eller i värsta fall orsaka HTTP-fel. Dessutom, om en beständig anslutning stannar, inaktiv eller har lagts ner eller inte längre används, avslutas den inte, och MySQL-servern kommer endast att stänga den för att frigöra resursen som upptas av anslutningen efter cirka 28800 sekunder (8 timmar) som standard om inte ändrade timeoutparametrarna i my.cnf-konfigurationsfilerna. Dessa få faktorer kan orsaka problem som att MySQL vägrar nya DB-anslutningar eller långsam server om applikationerna inte hanterar beständiga anslutningar korrekt.

Så om du inte är erfarna webbansvariga, försök inte ändra WordPress för att använda beständiga anslutningar.

Men för bloggare som har en upptagen och stor blogg och som står inför begränsningar när det gäller att uppgradera webbhotellsystemspecifikationer och inte vill använda statisk sidcache-plugin som WP-Cache, är beständig anslutning ett tillgängligt alternativ för att ställa in och optimera webbservern för att se om webbsidans visning kan vara snabbare. Beständig anslutning gör att anslutningen är öppen en gång och kommer inte att stängas när exekveringen av skriptet avslutas. Istället hålls länken i poolen och kommer att förbli öppen för framtida användning. Således kommer användningen av beständiga anslutningar att eliminera processen att öppna och stänga anslutningen. Detta kommer indirekt att minska MySQL-anslutningsrelaterade serveroverheads såsom autentisering för att upprätta anslutning där endast en gång behövs, vilket sparar extra nätverkstrafik och resurser som används för att hantera extra anslutning. Dessutom kan det finnas några cacher på anslutningsnivå som måste fyllas på för korrekt prestanda och eventuellt minska antalet anslutningar till databasen.

Som standard använder WordPress mysql_connect()-funktionen som upprättar en ny databasanslutning på varje sida. Den beständiga anslutningsfunktionen kommer att kräva mysql_pconnect()-funktionen som använder exakt samma API, men har inbyggd anslutningspoolning för att hålla anslutningarna levande mellan förfrågningar. Så för att byta till att använda beständig anslutning för att köra WordPress måste funktionen mysql_connect() ersättas med mysql_pconnect().

För att aktivera och använda beständiga anslutningar med WordPress loggar du helt enkelt in på ditt webbhotell med SSH (eller osäkert Telnet) och byter katalog till webbroot-hemkatalogen där WordPress-bloggen är installerad.

Leta upp och redigera wp-config.php fil och lägg till följande rader (eller ändra till följande värden om konstanterna redan fanns):

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

WordPress och PHP (så länge du inte stänger av mysql.allow_persistent i PHP.INI) kommer omedelbart att använda beständiga anslutningar för att ansluta till MySQL-databasen. Det är värt att testa vilken inställning som är bäst för din miljö.

Följande steg är också användbara, men involverar hackning av WordPress-kärnfilen, och rekommenderas därför inte, och lämnas endast i den här artikeln som referens.

Ändra katalog till wp-includes katalog. Inuti wp-includes-katalogen finns wp-db.php fil. Använd valfri textredigerare som vi för att redigera wp-db.php. Sök eller lokalisera funktionen för mysql_connect (eller @mysql_connect ). Det finns bara en instans av mysql_connect. Ändra bara mysql_connect till mysql_pconnect , spara och avsluta sedan wp-db.php.


  1. Uppdatera fråga if-sats för Oracle

  2. PDO MySQL:Infoga flera rader i en fråga

  3. Oracle.DataAccess är inte tillgängligt för val i Visual Studio 2013

  4. PHP mysql infoga datumformat