Das Prinzip des Zwischenspeicherns von MySQL-Datenbankabfragen ist: 1. Zwischenspeichern Sie die Ergebnismenge und die SQL-Anweisung der SELECT-Operation. Der Schlüssel ist SQL und der Wert ist die Abfrageergebnismenge. 2. Wenn eine neue SELECT-Anweisung eintrifft, verwenden Sie diese sql als Schlüssel zur Abfrage im Cache. Wenn eine Übereinstimmung vorliegt, wird die zwischengespeicherte Ergebnismenge zurückgegeben.
Das Prinzip des MySQL-Datenbankabfragecaches ist:
Übersicht
Der Abfragecache (kurz QC) speichert SELECT-Anweisungen und die von ihnen generierten Datenergebnisse. Da ich nichts zu tun habe, möchte ich dieses Thema zusammenfassen und ein Memo erstellen!
Super detaillierte Zusammenfassung des MySQL-Datenbank-Abfragecaches, es lohnt sich zu sammeln
Arbeitsprinzip
Zwischenspeichern Sie die Ergebnismenge und die SQL-Anweisung der SELECT-Operation, der Schlüssel ist SQL, der Wert ist die Abfrageergebnismenge ;
Wenn eine neue SELECT-Anweisung eintrifft, verwenden Sie diese SQL als Schlüssel zum Abfragen des Caches. Wenn sie übereinstimmt, geben Sie die zwischengespeicherte Ergebnismenge zurück.
Übereinstimmungskriterien: Ob sie genau mit der zwischengespeicherten SQL übereinstimmt Bei der Anweisung wird die Groß-/Kleinschreibung beachtet, und das Leerzeichen in der Mitte kann einfach so verstanden werden, dass der Schlüssel SQL ist und der Wert das SQL-Abfrageergebnis ist. ), zum Beispiel:
Alter auswählen vom Benutzer und Alter vom Benutzer auswählen stimmt nicht überein, weil die Groß-/Kleinschreibung unterschiedlich ist;
Alter auswählen vom Benutzer und Alter vom Benutzer auswählen stimmt nicht überein, weil die Leerzeichen unterschiedlich sind;
MySQL-Einstellungsparameter anzeigen
Ausführen Variablen wie „%query_cache%“ anzeigen; Sie können die relevanten Parameter sehen:Cache-Nutzung anzeigen
Sie können die relevanten Parameter sehen:
Qcache_hits: Anzahl der Cache-Treffer;Aktivieren Sie den Abfragecache.
Hinweis: Der Wert von query_cache_size ist auf 100 MB festgelegt. Das war’s. In MySQL wird der Abfragecache durch eine globale Sperre gesteuert. Jedes Mal, wenn der Speicherblock des Abfragecaches aktualisiert wird, muss er gesperrt werden.
Abfrage-Caching deaktivierenSetzen Sie die Option query_cache_type = 0 und setzen Sie query_cache_size = 0.
Anwendbare Szenarien
Es wird in Szenarien verwendet, in denen dieselbe Aussage häufig übermittelt wird und sich die Tabellendaten nicht sehr häufig ändern, z. B. bei einigen statischen Seiten oder einer bestimmten Information auf der Seite, die sich nicht häufig ändert .
Da der Abfragecache die neuesten Datenergebnisse zwischenspeichern muss, führen alle Änderungen an den Tabellendaten (Einfügen, Aktualisieren, Löschen oder andere Vorgänge, die zu Datenänderungen führen können) dazu, dass der Abfragecache aktualisiert wird. Daher ist es in einem Szenario, in dem die Aktualisierungshäufigkeit sehr niedrig und die Häufigkeit schreibgeschützter Abfragen sehr hoch ist, vorteilhafter, den Abfragecache zu aktivieren.
Nicht anwendbares SzenarioDer Abfrage-Cache erfordert unbedingt, dass die beiden SQL-Anfragen genau gleich sein müssen, einschließlich SQL-Anweisungen, verbundener Datenbanken, Protokollversionen, Zeichensätzen und anderer Faktoren, die ihn beeinflussen. Im Folgenden sind mehrere Szenarien aufgeführt, in denen das Abfrage-Caching nicht anwendbar ist:
Unterabfrage;
Die Abfrage umfasst MySQL, Information_Schema oder Performance_Schema.
Abfragen ähnlich wie SELECT...LOCK IN SHARE MODE, SELECT...FOR UPDATE, SELECT..INTO OUTFILE/DUMPFILE, SELECT * FROM... WHERE autoincrement_col IS NULL;
SELECT Ausführungsplan verwendet temporäre Tabellen;
Abfragen, die auf keine Tabelle verweisen, wie z. B. SELECT 1+2;
Das Schlüsselwort SQL_NO_CACHE ist in der SELECT-Anweisung vorhanden;
(Video)
Das obige ist der detaillierte Inhalt vonWas ist das Prinzip des MySQL-Datenbankabfrage-Cachings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!