Abfrage-Cache1. Funktionsprinzip des Abfrage-CacheBevor eine Abfrageanweisung ausgeführt wird, vergleicht MySQL die Abfrageanweisung mit den Anweisungen im Abfragecache und vergleicht sie Byte für Byte. Nur diejenigen, die vollständig konsistent sind, werden als identisch betrachtet. Im Folgenden werden diese beiden Anweisungen als unterschiedliche Abfragen betrachtet.
1) Abfragen für unterschiedliche Datenbanken, unterschiedliche Protokollversionen oder unterschiedliche Zeichensätze werden als unterschiedliche Abfragen behandelt und separat zwischengespeichert. 2) Die folgenden beiden Abfragetypen werden nicht zwischengespeichert
3) Bevor Abfrageergebnisse aus dem Abfragecache abgerufen werden, prüft MySQL, ob der Benutzer über Abfrageberechtigungen für alle an der Abfrage beteiligten Datenbanken und Tabellen verfügt. Wenn nicht, werden die zwischengespeicherten Abfrageergebnisse nicht verwendet. 4) Wenn ein Abfrageergebnis von der Cache-Abfrage zurückgegeben wird, erhöht der Server die Statusvariable Qcache_hits anstelle von Com_select 5) Wenn sich die Tabelle ändert, werden alle zwischengespeicherten Abfragen, die diese Tabelle verwenden, ungültig und aus dem Cache entfernt. Tabellen können durch verschiedene Arten von Anweisungen geändert werden, etwa INSERT, UPDATE, DELETE, TRUNCATE TABLE, ALTER TABLE, DROP TABLE oder DROP DATABASE. Referenzlinks: http://dev.mysql.com/doc/refman/4.1/en/query-cache-operation.html 2. Prüfen Sie, ob die Cache-Abfrage aktiviert ist
MySql-Cache-Abfrageprinzip und Cache-Überwachung und Indexüberwachung 3. Entfernen Sie alle Abfrage-Caches aus dem Abfrage-Cache
4. Überwachung der Leistung des Abfragecaches
MySql-Cache-Abfrageprinzip und Cache-Überwachung und Indexüberwachung Ausgabebeschreibung: Qcache_free_blocks: freie Speicherblöcke im Abfragecache Qcache_free_memory: Die Menge an freiem Speicher im Abfragecache Qcache_hits: Anzahl der Abfrage-Cache-Treffer Qcache_inserts: Die Anzahl der Abfragen, die dem Abfragecache hinzugefügt wurden (keine Lesevorgänge, die nicht zwischengespeichert wurden, sondern Lesevorgänge, die für ungültig erklärt wurden) Qcache_lowmen_prunes: Die Anzahl der Abfragen, die aufgrund von zu wenig Speicher aus dem Abfragecache entfernt wurden. Qcache_not_chached: Die Anzahl der nicht zwischengespeicherten Abfragen (aufgrund der Einstellung query_cache_type nicht zwischengespeichert) Qcache_queries_in_cache: Die Anzahl der im Cache-Abfragespeicher registrierten Abfragen Qcache_total_blocks: Die Gesamtzahl der Speicherblöcke im Abfragecache Gesamtzahl der SELECT-Abfragen: Com_select+Qcache_hits+ Anzahl der Abfragen mit vom Parser gefundenen Fehlern Unter diesen stellt Com_select die Anzahl der Cache-Fehler und Qcache_hits die Anzahl der Cache-Treffer dar. Com_select Berechnungsformel: Qcache_inserts+Qcache_not_cached+Anzahl der Fehler bei der Berechtigungsprüfung (Abfragen mit Fehlern, die bei der Prüfung der Spaltenberechtigungen gefunden wurden) Indexüberwachung
MySql-Cache-Abfrageprinzip und Cache-Überwachung und Indexüberwachung Ausgabebeschreibung: Handler_zuerst_lesen Die Häufigkeit, mit der der erste Eintrag in einem Index gelesen wurde. Wenn dieser Wert hoch ist, deutet dies darauf hin, dass der Server viele vollständige Index-Scans durchführt; beispielsweise SELECT col1 FROM foo, vorausgesetzt, dass col1 indiziert ist Die Häufigkeit, mit der der erste Eintrag in einem Index gelesen wird. Wenn dieser Wert hoch ist, bedeutet dies, dass der Server viele vollständige Indexscans durchführt, z. B. SELECT col1 FROM foo, vorausgesetzt, dass col1 indiziert ist. Handler_Schlüssel lesen Die Anzahl der Anfragen zum Lesen einer Zeile basierend auf einem Schlüssel. Ein hoher Wert ist ein gutes Zeichen dafür, dass Ihre Tabellen für Ihre Abfragen richtig indiziert sind. Die Anzahl der Anforderungen zum Lesen einer Zeile basierend auf einem Schlüssel. Wenn dieser Wert hoch ist, ist dies ein gutes Zeichen dafür, dass die Tabelle für die ausgeführten Anforderungen entsprechend indiziert ist. Handler_weiterlesen Die Anzahl der Anforderungen zum Lesen der nächsten Zeile in Schlüsselreihenfolge. Dieser Wert wird erhöht, wenn Sie eine Indexspalte mit einer Bereichseinschränkung abfragen oder einen Indexscan durchführen. Die Anzahl der Anforderungen zum Lesen der nächsten Zeile gemäß der Schlüsselreihenfolge. Wenn Sie eine Indexspalte mit einer Reihe von Einschränkungen abfragen oder einen Indexscan durchführen, erhöht sich dieser Wert. Handler_read_prev Die Anzahl der Anfragen zum Lesen der vorherigen Zeile in Schlüsselreihenfolge. Diese Lesemethode wird hauptsächlich zur Optimierung von ORDER BY ... DESC verwendet. Die Anzahl der Anfragen zum Lesen der vorherigen Zeile in der Reihenfolge der Schlüssel. Diese Lesemethode wird hauptsächlich zur Optimierung von ORDER BY ... DESC verwendet. Handler_read_rnd Die Anzahl der Anfragen zum Lesen einer Zeile basierend auf einer festen Position. Dieser Wert ist hoch, wenn Sie viele Abfragen durchführen, bei denen das Ergebnis sortiert werden muss. Sie haben wahrscheinlich viele Abfragen, bei denen MySQL ganze Tabellen scannen muss, oder Sie haben Verknüpfungen, bei denen die Schlüssel nicht richtig verwendet werden. Die Anzahl der Anforderungen zum Lesen einer Zeile an einer festen Position. Ein hoher Wert zeigt an, dass viele Abfragen ausgeführt werden, die eine Sortierung der Ergebnismengen erfordern. Möglicherweise führen Sie viele Abfragen aus, die vollständige Tabellenscans erfordern, oder Verknüpfungen, bei denen nicht die entsprechenden Schlüssel verwendet werden. Handler_read_rnd_next Die Anzahl der Anfragen zum Lesen der nächsten Zeile in der Datendatei. Dieser Wert ist hoch, wenn Sie viele Tabellenscans durchführen. Im Allgemeinen deutet dies darauf hin, dass Ihre Tabellen nicht richtig indiziert sind oder dass Ihre Abfragen nicht so geschrieben sind, dass sie die vorhandenen Indizes nutzen. Die Anzahl der Anforderungen zum Lesen der nächsten Zeile in der Datendatei. Ein hoher Wert zeigt an, dass viele vollständige Tabellenscans durchgeführt werden. Dies weist normalerweise darauf hin, dass die Tabelle nicht die richtigen Indizes verwendet oder dass die Abfrageanforderung die vorhandenen Indizes nicht nutzt. Referenzlinks: http://dev.mysql.com/doc/refman/5.7/en/dynindex-statvar.html#statvar-index-H Referenzlinks: http://dev.mysql.com/doc/refman/4.1/en/server-status-variables.html http://dev.mysql.com/doc/refman/4.1/en/query-cache-status-and-maintenance.html Dies ist das Ende dieses Artikels über die Prinzipien der MySql-Cache-Abfrage und die Einführung in die Cache-Überwachung und Indexüberwachung. Weitere relevante Inhalte zur MySql-Cache-Abfrage finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Schritte für den Exit-Fehlercode des Docker-Containers
>>: Beispielcode zur Implementierung des Neuner-Raster-Layouts dynamischer Bilder mit CSS
Inhaltsverzeichnis Was ist LocalStorage Was ist S...
1. Grundlegende Verwendung Es kann über den Mutat...
In diesem Artikel werden hauptsächlich die Konfig...
MySQL ist das beliebteste relationale Datenbankma...
Inhaltsverzeichnis 1. Öffnen Sie die Datei Parame...
Inhaltsverzeichnis 1. Konzept Speicherverwaltungs...
Installieren Sie die erforderliche Umgebung 1. gc...
Hintergrund: Manchmal müssen wir JSON-Daten direk...
Vorwort JSON ist ein leichtes Datenaustauschforma...
So schreiben Sie DROP TABLE in verschiedene Daten...
Prinzip Setzen Sie beim Schweben einen Schatten a...
1. Umwelt: MySQL-5.0.41-win32 Windows XP Professi...
1. Laden Sie das offizielle MySQL Yum Repository ...
1. CSS-Boxmodell Die Box beinhaltet: Rand, Rahmen...
Vorwort Die sogenannte Fuzzy-Abfrage dient dazu, ...