sql >> Database teknologi >  >> RDS >> Mysql

Brug af PHP-MySQL-vedvarende forbindelser til at køre WordPress-blog

Når du opretter forbindelse til MySQL-databasen, vil WordPress-weblog baseret på PHP-scripting bruge en ikke-vedvarende forbindelse som standard. Det vil sige, at WordPress udløser PHP til at generere en ny forbindelse til MySQL-serveren for hver dynamisk sideanmodning og efterfølgende lukke databaseforbindelsen, når websideopbygningen er afsluttet. Gentagen åbning og lukning af MySQL-forbindelser forårsager overhead og bruger værdifuld CPU, hukommelse og systemressourcer på webværten.

Brug af vedvarende forbindelse til at oprette forbindelse til MySQL-databaseserver er ikke altid en god mulighed. Hver forbindelse optager ressourcer, inklusive hukommelse, buffere, tabel- eller trådcaches internt i MySQL og sockets, åbne filer eller IO-aktivitet på OS-niveau. Når en masse vedvarende forbindelser åbnes, men ikke lukkes, efter at transaktioner er gennemført, kan ressourcerne på systemet tømmes og forringe ydeevnen af ​​webserveren, eller i værste fald forårsage HTTP-fejl. Ydermere, hvis en vedvarende forbindelse er gået i stå, inaktiv eller blev nedlagt eller ikke længere bruges, bliver den ikke afsluttet, og MySQL-serveren vil kun lukke den for at frigive den ressource, der er optaget af forbindelsen efter ca. 28800 sekunder (8 timer) som standard, medmindre ændret timeout-parametrene i my.cnf-konfigurationsfilerne. Disse få faktorer kan give problemer såsom MySQL, der nægter nye DB-forbindelser eller langsom server, hvis applikationerne ikke håndterer vedvarende forbindelser korrekt.

Så hvis du ikke er erfaren webmaster, skal du ikke forsøge at ændre WordPress til at bruge vedvarende forbindelser.

For bloggere, der har travl og stor blog, og som står over for begrænsninger i opgradering af webhost-systemspecifikationer og ikke ønsker at bruge statisk sidecache-plugin såsom WP-Cache, er vedvarende forbindelse en tilgængelig mulighed for at tune og optimere webserveren for at se, om websidevisningen kan være hurtigere. Vedvarende forbindelse tillader forbindelsen at være åben én gang og vil ikke blive lukket, når udførelsen af ​​scriptet slutter. I stedet opbevares linket i poolen og vil forblive åbent til fremtidig brug. Brug af vedvarende forbindelser vil således eliminere processen med at åbne og lukke forbindelsen. Dette vil indirekte reducere MySQL-forbindelsesrelaterede serveromkostninger, såsom godkendelse for at etablere forbindelse, hvor der kun er behov for én gang, hvilket sparer ekstra netværkstrafik og ressourcer, der bruges til at håndtere ekstra forbindelse. Derudover kan der være nogle caches på forbindelsesniveau, som skal fyldes op for korrekt ydeevne og potentielt reducere antallet af forbindelser til databasen.

Som standard bruger WordPress mysql_connect() funktion, der etablerer en ny databaseforbindelse på hver side. Den vedvarende forbindelsesfunktion vil kræve mysql_pconnect() funktion, som bruger nøjagtig samme API, men har indbygget forbindelsespooling for at holde forbindelserne i live mellem anmodninger. Så for at skifte til at bruge vedvarende forbindelse til at køre WordPress, skal mysql_connect()-funktionen erstattes med mysql_pconnect().

For at aktivere og bruge vedvarende forbindelser med WordPress skal du blot logge ind på din webhost med SSH (eller usikker Telnet) og skifte bibliotek til webroot-hjemmebiblioteket, hvor WordPress blog er installeret.

Find og rediger wp-config.php fil, og tilføj følgende linjer (eller skift til følgende værdier, hvis konstanterne allerede eksisterede):

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

WordPress og PHP (så længe du ikke slår mysql.allow_persistent fra i PHP.INI) vil straks bruge vedvarende forbindelser til at oprette forbindelse til MySQL-databasen. Det er værd at prøve, hvilken indstilling der er bedst for dit miljø.

De følgende trin er også brugbare, men involverer hacking af WordPress-kernefilen, og anbefales derfor ikke, og efterlades kun til reference i denne artikel.

Skift mappe til wp-includes vejviser. Inde i mappen wp-includes er der wp-db.php fil. Brug en hvilken som helst teksteditor, såsom vi, til at redigere wp-db.php. Søg eller find funktionen for mysql_connect (eller @mysql_connect ). Der er kun én forekomst af mysql_connect. Skift blot mysql_connect til mysql_pconnect , gem og afslut derefter wp-db.php.


  1. MYSQL ind i outfil adgang nægtet - men min bruger har ALT adgang.. og mappen er CHMOD 777

  2. Hvordan kopierer man en post i en SQL-tabel, men udskifter det unikke id for den nye række?

  3. Ignorer datointervalparameteren i where-udtrykket, når parameteren ikke er indtastet

  4. Java SQLData - Cast til brugerobjekt med en liste/array?