Als Referenz versuche ich auch einige Konzepte zu erklären.
Schlüsseltrefferquote
Grundsätzlich gibt es zwei Arten der Schlüsseltrefferquote
1.Key Read Effizienz
Schlüssellesevorgänge: Die Anzahl der physischen Lesevorgänge eines Schlüsselblocks von der Festplatte.
Schlüsselleseanforderung: Die Anzahl der Anforderungen zum Lesen eines Schlüsselblocks aus dem Cache.
Key Read Efficiency = [1 - (Key_reads/Key_read_requests)]*100
Schlüsselleseeffizienz: Das Verhältnis der Anzahl der physischen Lesevorgänge eines Schlüsselblocks aus dem Cache zur Anzahl der Anforderungen zum Lesen eines Schlüsselblocks aus dem Cache in Prozent. Die MySQL-Leistung ist gut, wenn der Wert der Key Read-Effizienz 90 Prozent und mehr beträgt. Durch Erhöhen der Größe des Caches wird der Wert der Schlüsselleseeffizienz und damit die Leistung verbessert.
2. Schlüsselschreibeffizienz
Schlüsselschreibvorgänge: Die Anzahl der physischen Schreibvorgänge eines Schlüsselblocks auf die Festplatte.
Schlüsselschreibanforderung: Die Anzahl der Anforderungen zum Schreiben eines Schlüsselblocks in den Cache.
Key Write Efficiency=(Key_write/Key_write_requests)*100
Schlüsselschreibeffizienz: Das Verhältnis der Anzahl der physischen Schreibvorgänge eines Schlüsselblocks zum Cache zur Anzahl der Anforderungen zum Schreiben eines Schlüsselblocks in den Cache in Prozent. Für eine gute Leistung des MySQL-Servers muss der Wert der Key Write-Effizienz 90 Prozent und mehr betragen. Wenn weniger gefunden wird, können Sie den Cache vergrößern, um die Leistung zu verbessern.
Verwendeter Schlüsselpuffer
Suchen Sie den Wert von key_buffer_size als show variables like 'key_buffer_size';
konvertiere es in MB.
Finden Sie den All MyISAM-Index Größe:
SELECT SUM (INDEX_LENGTH) / (1024 * 1024) 'Indexgröße' FROM information_schema.TABLES wobei ENGINE = 'MyISAM' UND TABLE_SCHEMA NOT IN ('mysql', 'information_schema');
Finden
(Index Size)/key_buffer_size(in MB) * 100
Wenn das Ergebnis (<= 100) ist, werden alle Indizes in key_buffer zwischengespeichert
Wenn das Ergebnis (> 100) ist, werden nicht alle Indizes in key_buffer zwischengespeichert. Sie können die Leistung steigern, indem Sie key_buffer_size erhöhen.
Abfrage-Cache-Trefferquote
Trefferquote = Qcache_hits / (Qcache_hits + Com_select) * 100
Einfügerate = Qcache_inserts / (Qcache_hits + Com_select) * 100
Bereinigungsrate = (Qcache_lowmem_prunes / Qcache_inserts) * 100
Für diejenigen, die MySQL Administrator verwenden, ist hier ein schönes Skript, das ich gefunden habe und das die wichtigsten interessanten Werte zeigt.
Funktionierte perfekt für mich (Win7 x64, MySQL 5.1.3 unter Debian).
Danke an den, der es geschrieben hat!
quelle
Ich bin hier nicht häufig, aber die Formel in der Top-Antwort für die Trefferquote ist nicht richtig. Die richtige Formel finden Sie unter Optimieren von MySQL query_cache_size .
quelle
(Jetzt ist es 2019.)
Ich schlage vor, dass die Frage strittig ist, da Sie MyISAM nicht verwenden sollten. Stattdessen sollten Sie InnoDB verwenden, das unterschiedliche Metriken aufweist.
Der Abfrage-Cache wurde aus MySQL 8.0 entfernt. Und es ist in vielen Multi-Master-Setups, einschließlich Galera und Gruppenreplikation, nicht verwendbar.
quelle