Wie lautet die Formel zur Berechnung der Schlüsseleffizienz, des verwendeten Schlüsselpuffers und des Abfrage-Cache-Hitrats in MySql?


7

Jetzt habe ich einige Daten aus der Tabelle 'GLOBAL_STATUS' und 'GLOBAL_VARIABLES' von MySQL DB mit dem Namen information_schema abgerufen.

Ich kann abrufen

  • key_buffer_size
  • key_cache_block_size
  • query_cache_limit
  • Query_cache_size ... und so weiter ...

    Ich weiß jedoch nicht, wie ich die Rate der Key-Trefferquote , des verwendeten Schlüsselpuffers und der Abfrage-Cache-Trefferquote berechnen soll

So kann jemand die Formel über diese erhalten, wie z
? / ? * 100% = ?

Antworten:


11

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


Sehr schön. Du lässt mich fragen. Vielen Dank, dies ist mein erstes Mal, dass ich eine Frage auf Englisch stelle!
— Xia Yu

oh toll !!! Ich hoffe, diese Antwort wird dir helfen.
— Abdul Manaf

Warum ist die Schlüsselleseeffizienz "1-", die Schlüsselschreibleistung jedoch nicht?


0

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 .


Ich schätze, dass Sie nicht den nötigen Ruf haben, um Kommentare zu schreiben, aber bald werden Sie es tun!
— Max Vernon

0

(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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.