Cache PHP MySQL Query resultaten

Beginnend met MySQL versie vier, is het niet langer nodig om te schrijven van aangepaste PHP-code aan de resultaten van de query van de MySQL van de cache. MySQL bevat een ingebouwde query cache die resultaten voor identieke "SELECT"-instructies, met inbegrip van bereid verklaringen in de cache. Voor het gebruik van de cache, redigeren naar de configuratie vijl en zet hem aan. Zodra toegelaten, echter, hebt u de mogelijkheid om te overschrijven of een query in de cache is opgeslagen door het passeren van een sleutelwoord in de query die u vanuit PHP met MySQL verzendt. Bekijk de beperkingen van de query cache om ervoor te zorgen dat u begrijpt hoe de cache werkt voordat u een PHP-script met de query cache in het achterhoofd schrijven.

MySQL Query Cache

De MySQL query cache een query-expressie van een "SELECT"-query en de volledige reeks uitkomsten vangt en plaatst deze in een tijdelijke cache op schijf of in het geheugen. Wanneer een PHP script kwesties een identieke query naar een die was eerder lopen en in de cache, de resultaten uit de cache in plaats van de database worden geserveerd. Dit kan aanzienlijk verminderen de hoeveelheid tijd die nodig is om de resultaten, die de prestaties van de PHP-programma verbetert.

Beperkingen

De MySQL query cache werkt alleen met "SELECT" queries en wordt alleen de cache volledige query's, niet subselects of inline weergaven. De query cache wordt cache bereid verklaringen maar databasetransacties niet in de cache. Opmerkingen aan het begin van de query's niet opnemen in PHP verklaringen. Als een query voorwaarde niet begint met de letter "S", zal MySQL bepalen het is niet een "SELECT" query en zullen we niet de resultaten in cache opslaan. Bijvoorbeeld:

Doe dit niet
$query = ' / $name is huidige lid/Select van leden waar naam = $name';
Dit in plaats daarvan doen
$query = "Selecteer
uit leden waar naam = $name / $name is huidige lid /';
$result = mysql_query($query);

Query's Cache instellen

Configureren van de MySQL query cache, bewerken de MySQL configuratiebestand op de webserver, bijvoorbeeld "/ etc/mysql/my.cnf" op een Apache web server, en de "query_cache_type" en de "query-cache-size" variabelen instellen. Een waarde van nul uitgeschakeld voor "query_cache_type," de cache; Zet op de cache; en twee sets van de cache worden "on"demand. Kies een maximale grootte voor de query cache, meestal tussen 20 en 100 MB, en voeg de volgende lijnen aan het einde van het configuratiebestand om te schakelen van de query cache op en stel de grootte tot 20 MB:

cache-type-query = 1
query-cache-size = 20M

Caching "On Demand"

Als u bepalen welke queryresultaten opgeslagen in het cachegeheugen van uw PHP-script wilt, de "query-cache-type" op "2" instellen en doorgeven van het sleutelwoord "SQL_CACHE" na de "SELECT"-instructie in een PHP-query. Bijvoorbeeld:

$query = "Selecteer SQL_CACHE * uit klanten waar betekent ="0089324";
$result = mysql_query($query);

Als de query cache is ingeschakeld en u niet wilt een bepaalde query cache moet worden opgeslagen, geeft u het sleutelwoord "SQL_NO_CACHE" van PHP. Bijvoorbeeld:

$query = "Selecteer SQL_NO_CACHE * uit klanten waar betekent ="0089324";
$result = mysql_query($query);