Der Zweck der Einrichtung eines MySQL-Abfragecaches besteht darin:Zwischenspeichern Sie die Abfrageergebnisse, damit Sie sie bei der nächsten Ausführung derselben Abfrage direkt aus dem Ergebnissatz abrufen können. Dies ist viel schneller, als erneut zu suchen. Das Endergebnis der Abfrage-Zwischenspeicherung ist, dass es nach hinten losgeht:Es gibt zwei objektive Gründe, warum der Abfragecache die Leistung nicht verbessert: 1. Verwenden Sie den Hashwert der SQL-Anweisung als Schlüssel und den Ergebnissatz der SQL-Anweisung als Wert. Dies führt zu Problemen wie „select user from mysql.user“ und „SELECT user FROM mysql.user“. Diese beiden werden als unterschiedliche SQL-Anweisungen behandelt. Selbst wenn der Ergebnissatz zu diesem Zeitpunkt bereits vorhanden ist, wird er nicht verwendet. 2. Wenn die untergeordnete Tabelle, auf der die Abfrage basiert, geändert wird, wird der Abfragecache, der sich auf diese Tabelle bezieht, ungültig. Wenn das System einen hohen Grad an Parallelität aufweist, ist dieser Aufwand beträchtlich; der Vorgang zum Ungültigmachen des Ergebnissatzes erfordert ebenfalls Parallelität. Zur Zugangskontrolle wird es auch Schlösser geben. Bei einer großen Parallelität tritt ein Warten auf die Abfrage-Cache-Sperre auf. 3. Die Nutzung hängt vom Geschäftsmodell ab. So konfigurieren Sie den Abfrage-Cache:Die Systemvariable query_cache_type steuert, ob die Abfrage-Cache-Funktion aktiviert oder deaktiviert ist. Wenn query_cache_type=0 ist, bedeutet dies geschlossen, 1 bedeutet offen und 2 bedeutet nur Caching, wenn SQL_CACHE in der Auswahl explizit angegeben ist. Die Einstellung dieses Parameters ist etwas seltsam. 1. Wenn der Abfragecache vorher geschlossen wird, aber @@global.query_cache_type=1 gesetzt ist, wird ein Fehler gemeldet FEHLER 1651 (HY000): Der Abfragecache ist deaktiviert. Starten Sie den Server mit query_cache_type=1 neu, um ihn zu aktivieren. 2. Wenn es zuvor geöffnet war und Sie versuchen, es zu schließen, ist die Schließung unvollständig und die Abfrage versucht weiterhin, den Cache zu finden. Die beste Möglichkeit, den Abfragecache zu deaktivieren, besteht darin, in my.cnf query_cache_type=0 festzulegen und dann MySQL neu zu starten. Cache-bezogene Systemvariablen abfragen:have_query_cache gibt an, ob diese MySQL-Version den Abfrage-Cache unterstützt. query_cache_limit gibt den Maximalwert an, der zum Zwischenspeichern eines einzelnen Ergebnissatzes zulässig ist. query_cache_min_res_unit Der Mindestspeicher, den jeder zwischengespeicherte Ergebnissatz belegen soll. query_cache_size Die für den Abfrage-Cache verwendete Speichergröße. So überwachen Sie die Trefferquote des Abfragecaches:Qcache_free_memory Die aktuell verbleibende Speicherplatzgröße des Abfragecaches. Qcache_hits Die Anzahl der Abfrage-Cache-Treffer. Qcache_inserts Die Anzahl der Abfrage-Cache-Einfügungen. Das heißt, die Cache-Trefferquote beträgt Qcache_hits/(Qcache_hits+Qcache_inserts). Im Allgemeinen ist es nicht möglich, dies allein einzustellen. Sie müssen es kombinieren. Es wird empfohlen, den folgenden Artikel zu lesen Das könnte Sie auch interessieren:
|
<<: Lösung für die hohe CPU-Auslastung des Tomcat-Prozesses
>>: Fallstudie zur Implementierung eines jQuery Ajax-Chatbots
Sondersymbole Benannte Entitäten Dezimalkodierung...
Inhaltsverzeichnis Fertighaus So erstellen Sie ei...
1. Zweck: Machen Sie den Code leichter wartbar un...
<br />Bevor Browser die nächste Generation v...
In diesem Artikelbeispiel wird der spezifische Co...
Überblick es6 fügt eine neue Möglichkeit hinzu, b...
Inhaltsverzeichnis Vorwort Keep-Avlive-Hook-Funkt...
In diesem Artikelbeispiel wird der spezifische Co...
Hintergrund Da ich einem neuen Projektteam zugewi...
In diesem Artikel wird der spezifische Code von J...
<br />Ich habe bereits zwei Artikel geschrie...
1. Einleitung Wenn Sie im Projekt auf eine Anford...
Schritt 1: Ubuntu-Quelle hinzufügen Wechseln Sie ...
Früher habe ich zur Handhabung dieser Art von Nut...
Inhaltsverzeichnis 1. Funktionsdefinition 1.1 Fun...