Begyndelse med MySQL versionen fire, er det ikke længere nødvendigt at skrive brugerdefineret PHP kode til cache MySQL forespørgsel resultater . MySQL indeholder en indbygget forespørgsel cache , der vil cache resultater for identiske "Vælg" udsagn, herunder forberedte udsagn . For at bruge cachen , redigere konfigurationsfilen og tænde den. Når aktiveret , men du har mulighed for at tilsidesætte , om en forespørgsel er cached ved at føre et nøgleord i den forespørgsel, du sender fra PHP til MySQL. Gennemgå de begrænsninger af forespørgslen cache for at sikre, at du forstår, hvordan cachen fungerer , før du skriver et PHP script med forespørgslen cache i tankerne. MySQL Query Cache
MySQL query cache indfanger en forespørgsel udtryk fra en " SELECT " forespørgsel og det fulde sæt af resultater og placerer dem i en midlertidig cache på disk eller i hukommelsen. Når en PHP script udsteder en identisk forespørgsel til en, der var tidligere kørt og cachet , er resultaterne serveres fra cachen snarere end databasen . Dette kan reducere mængden af tid, der kræves for at levere de resultater , som forbedrer udførelsen af PHP -programmet.
Begrænsninger
MySQL query cache virker kun med " ; SELECT " forespørgsler og vil kun cache fuld forespørgsler , ikke subselects eller inline synspunkter. Forespørgslen cache vil cache forberedte udsagn , men vil ikke cache database transaktioner. Må ikke indeholde kommentarer i starten af forespørgsler i PHP udsagn. Hvis en forespørgsel betingelse ikke begynder med bogstavet "S ", MySQL vil bestemme det er ikke en "SELECT " forespørgslen og vil ikke cache resultaterne. For eksempel : Hej
//Gør ikke dette $ query = ' /* $ navn er nuværende medlem * /SELECT * FROM medlemmer WHERE navn = $ navn ' ;//Gør dette i stedet $ query = "SELECT * FROM medlemmer WHERE navn = $ navn /* $ navn er nuværende medlem * /' , $ result = mysql_query ( $ query ) ;
Query Cache Setup
< p > For at konfigurere MySQL query cache , redigere MySQL konfigurationsfil på webserveren , for eksempel " /etc /mysql /my.cnf " på en Apache webserver, og sæt " query_cache_type " og " forespørgslen - cache - størrelse " variable. For " query_cache_type ", en værdi på nul slukker cache man vender på cache og to sæt cache til at være Vælg en maksimal størrelse for forespørgslen cache , typisk mellem 20 og 100 "on demand ". megabyte og tilføje følgende linjer til slutningen af konfigurationsfilen til at vende forespørgslen cache på og indstille størrelsen til 20 megabyte : Hej
query- cache - type = 1query - cache - størrelse = 20M
Caching "On Demand"
p Hvis du ønsker at styre, hvilke forespørgsel resultater er cached fra din PHP script , skal du indstille " query- cache - type" til " 2" , og videregive de centrale ord " SQL_CACHE " efter "SELECT " erklæring i en PHP forespørgsel. For eksempel : Hej
$ query = "SELECT SQL_CACHE * FROM kunder WHERE kunde_id =" 0089324 " , $ result = mysql_query ( $ query ) ;
Hvis forespørgslen cache er tændt , og du ikke ønsker at cache en bestemt forespørgsel , passerer det centrale ord " SQL_NO_CACHE " fra PHP. For eksempel : Hej
$ query = "SELECT SQL_NO_CACHE * FROM kunder WHERE kunde_id =" 0089324 " , $ result = mysql_query ( $ query ) ;
< br >