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
more ist eines unserer am häufigsten verwendeten ...
Ich habe vor Kurzem in einer neuen Firma angefang...
Szenario: Die Daten in einer Tabelle müssen mithi...
In diesem Artikel wird hauptsächlich erläutert, w...
Wirkung: <!doctype html> <html> <K...
Inhaltsverzeichnis Kurzzusammenfassung Heute Mitt...
Inhaltsverzeichnis 1. Szenariobeschreibung 2. Lös...
Inhaltsverzeichnis Vom Vater zum Sohn: 1. Übergeb...
MySQL-Deduplizierungsmethoden 【Anfänger】 Es gibt ...
Dies ist mein erstes Mal, dass ich das Element-Fr...
In diesem Artikel wird die Verwendung von „Explai...
Inhaltsverzeichnis Vorwort Text Primitive Typen P...
Ein allgemeiner Vorschlag besteht darin, Indizes ...
FOUC steht für Flash of Unstyled Content, abgekürz...
Inhaltsverzeichnis WebAPI DOM DOM-Baum Methode zu...