Ab MySQL -Version vier , ist es nicht mehr notwendig, um individuelle PHP-Code Cache MySQL Query-Ergebnisse zu schreiben. MySQL enthält einen integrierten Abfrage-Cache , die Ergebnisse für identische "SELECT" Aussagen, einschließlich vorbereitete Anweisungen zwischenzuspeichern wird . Um den Cache zu verwenden, bearbeiten Sie die Konfigurationsdatei und schalten Sie ihn ein . Einmal aktiviert , haben Sie jedoch die Möglichkeit, überschreiben , ob eine Abfrage zwischengespeichert , indem ein Schlüsselwort in der Abfrage, die Sie senden von PHP , MySQL ist . Überprüfen Sie die Einschränkungen der Abfrage-Cache um sicherzustellen, dass Sie verstehen, wie der Cache , bevor Sie ein PHP-Skript schreiben mit dem Abfrage-Cache im Auge operiert . MySQL Query Cache
Der MySQL Query-Cache fängt eine Abfrage Ausdruck von einem "SELECT" -Abfrage und den vollen Satz der Ergebnisse und legt sie in einem temporären Cache auf der Festplatte oder im Arbeitsspeicher. Wenn ein PHP-Skript eine identische Abfrage ausgibt , eine, die zuvor laufen und zwischengespeichert war , werden die Ergebnisse aus dem Cache anstatt der Datenbank serviert. Dies kann erheblich reduzieren die Menge an Zeit benötigt, um die Ergebnisse, die die Leistung des PHP-Programm verbessert.
Einschränkungen
Der MySQL Query-Cache funktioniert nur mit " ; SELECT -Abfragen " und wird nur Cache voll Abfragen nicht Subselects oder Inline- Ansichten . Der Abfrage-Cache zwischengespeichert werden Prepared Statements aber nicht zwischenspeichern Datenbank-Transaktionen . Fügen Sie keine Kommentare zu Beginn der Abfragen in PHP -Anweisungen. Wenn eine Abfrage Bedingung nicht mit dem Buchstaben " S " MySQL wird bestimmen, es ist nicht eine "SELECT" -Abfrage und wird nicht im Cache die Ergebnisse. Zum Beispiel:
//Tun Sie dies nicht $ query = ' /* $ name ist aktuelles Mitglied * /SELECT * FROM Mitglieder WHERE name = $ name ' ;//diese Statt $ query = " SELECT Do * FROM Mitglieder WHERE name = $ name /* $ name ist aktuelles Mitglied * /' ; $ result = mysql_query ( $ query);
Anfragen-Cache -Setup
< p> Um den MySQL Query-Cache konfigurieren , bearbeiten Sie die MySQL -Konfigurationsdatei auf dem Web-Server , zum Beispiel " /etc /mysql /my.cnf " auf einem Apache Web-Server , und stellen Sie die " query_cache_type " und die " Abfrage -cache-size "-Variablen . Für " query_cache_type , " ein Wert von Null schaltet den Cache; dreht man auf den Cache , und zwei Sätze der Cache sein Wählen Sie eine maximale Größe für die Abfrage-Cache , in der Regel zwischen 20 und 100 "on demand ". Megabyte , und fügen Sie die folgenden Zeilen am Ende der Konfigurationsdatei, um den Abfrage-Cache einzuschalten und die Größe auf 20 Megabyte :
Abfrage - Cache -type = 1query -cache- size = 20M
Caching "On Demand"
Wenn Sie steuern, welche Abfrage-Ergebnisse zwischengespeichert werden von Ihrem PHP-Skript wollen , setzen Sie die " Abfrage - Cache - Typ" auf "2" ; und geben das Stichwort " SQL_CACHE " nach der "SELECT" -Anweisung in einer PHP -Abfrage. Zum Beispiel:
$ query = "SELECT * FROM Kunden SQL_CACHE WHERE cust_id =" 0089324 "; $ result = mysql_query ( $ query);
Wenn der Abfrage-Cache eingeschaltet ist und Sie wollen nicht , um eine bestimmte Abfrage-Cache , passieren das Schlüsselwort " SQL_NO_CACHE " von PHP. Zum Beispiel:
$ query = "SELECT * FROM Kunden SQL_NO_CACHE WHERE cust_id =" 0089324 "; $ result = mysql_query ( $ query);