Fra og med MySQL versjon fire , er det ikke lenger nødvendig å skrive egendefinerte PHP-koden til cache MySQL søkeresultatene. MySQL inneholder en innebygd spørring cache som vil cache resultater for identiske " SELECT " uttalelser , inkludert preparerte uttalelser. For å bruke cache, redigere konfigurasjonsfilen og slår den på. Når aktivert, men du har muligheten til å overstyre om en spørring er bufret ved å sende et nøkkelord i spørringen du sender fra PHP til MySQL. Gjennomgang av begrensninger i søket cache å sørge for at du forstår hvordan cache opererer før du skriver et PHP-skript med spørringen cache i tankene. MySQL Query Cache
MySQL spørring cache fanger en spørring uttrykk fra en "SELECT" spørring og et komplett sett med resultater og plasserer dem i en midlertidig buffer på harddisken eller i minnet . Når en PHP script utsteder et identisk spørring til en som var tidligere drevet og lagret, er resultatene servert fra cache i stedet for databasen. Dette kan redusere tiden det tar å gi resultater , noe som forbedrer ytelsen til PHP -programmet.
Begrensninger
MySQL spørring cache fungerer bare med " ; VALG " spørsmål og vil bare cache fulle spørsmål, ikke subselects eller inline utsikt. Spørringen cache vil cache preparerte uttalelser , men vil ikke cache databasetransaksjoner . Ikke ta kommentarene på begynnelsen av spørringer i PHP uttalelser. Hvis en spørring tilstand begynner ikke med bokstaven " S ", MySQL vil avgjøre det er ikke en " SELECT " søket og vil ikke cache resultatene. For eksempel : en
//Ikke gjør dette $ query = '/* $ name er nåværende medlem * /SELECT * FROM medlemmer WHERE navn = $ navn ' ;//Gjør dette i stedet $ query = 'SELECT * FROM medlemmer WHERE navn = $ name /* $ name er nåværende medlem * /'; $ result = mysql_query ( $ query ) ;
Query Cache Setup
< p > For å konfigurere MySQL spørring cache , redigere MySQL konfigurasjonsfil på web-serveren , for eksempel " /etc /mysql /my.cnf " på en Apache webserver, og sette " query_cache_type " og "søket - cache - size " variabler . For " query_cache_type ", en verdi på null slår av cache , en omdreininger i cache , og to sett buffer for å være Velg en maksimal størrelse for spørringen cache, vanligvis mellom 20 og 100 "on demand ". megabyte , og legge til følgende linjer på slutten av konfigurasjonsfilen for å slå spørringen cache på og sette størrelsen til 20 megabyte : en
query- cache - type = 1query - cache - size = 20M
Caching " On Demand "
p Hvis du vil kontrollere hvilke søkeresultatene bufres fra din PHP script , sette " query- cache -type" til "2" , og passerer stikkordet " SQL_CACHE " etter "SELECT " statement i en PHP spørring . For eksempel : en
$ query = "SELECT SQL_CACHE * FROM kunder WHERE cust_id = " 0089324 "; $ result = mysql_query ( $ query ) ;
p Hvis spørringen cache er slått på og du ikke ønsker å cache en bestemt spørring , passerer stikkordet " SQL_NO_CACHE " fra PHP. For eksempel : en
$ query = "SELECT SQL_NO_CACHE * FROM kunder WHERE cust_id = " 0089324 "; $ result = mysql_query ( $ query ) ;