MySQL query_cache_type-Parameter und Verwendungsdetails

MySQL query_cache_type-Parameter und Verwendungsdetails

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:
  • Grafische Erklärung des MySQL-Abfragecaches
  • Beschreibung des MySQL-Optimierungsparameters query_cache_limit
  • Gründe, warum MySQL den Abfrage-Cache abgebrochen hat
  • Startmethode und Parameterdetails für MySQL-Cache (query_cache_size)
  • Missverständnisse über MySQL query_cache
  • Analyse des MySQL Query Cache-Prinzips

<<:  Lösung für die hohe CPU-Auslastung des Tomcat-Prozesses

>>:  Fallstudie zur Implementierung eines jQuery Ajax-Chatbots

Artikel empfehlen

So verwenden Sie die Vue3-Komponente zum asynchronen Laden von Daten Suspense

Inhaltsverzeichnis Vorwort Komponenten erstellen ...

Erklärung des Konzepts und der Verwendung von Like in MySQL

Like bedeutet auf Chinesisch „wie“, aber wenn es ...

vue_drf implementiert SMS-Bestätigungscode

Inhaltsverzeichnis 1. Nachfrage 1. Nachfrage 2. S...

Teilen Sie 20 hervorragende Beispiele für Webformular-Design

Sophie Hardach Kai von Clyde Quay 37 Ost Seifenkis...

Wesentliche bedingte Abfrageanweisungen für MySQL-Datenbanken

Inhaltsverzeichnis 1. Grundlegende Grammatik 2. F...

Beispiel für eine Methode zur Überprüfung des Status einer Linux-Firewall

So überprüfen Sie den Status der Linux-Firewall 1...

Mehrere Möglichkeiten zum Generieren eindeutiger IDs in JavaScript

Mögliche Lösungen 1. Math.random generiert Zufall...

Vue implementiert Div-Rad zum Vergrößern und Verkleinern

Implementieren Sie das Vergrößern und Verkleinern...

Erklären Sie anhand eines Diagramms, was Web 2.0 ist

Heutzutage sprechen wir oft über Web 2.0. Was als...

CSS Sticky Footer Mehrere Implementierungen

Was ist „Sticky Footer“ Der sogenannte „Sticky Fo...

Detaillierte Erklärung zur Konfiguration der OpenGauss-Datenbank im Docker

Für Windows-Benutzer Verwenden von openGauss in D...

Erweiterte Verwendungsbeispiele für den Befehl mv in Linux

Vorwort Der Befehl mv ist die Abkürzung für move ...