MySQL-Abfrage-Cache und Pufferpool

MySQL-Abfrage-Cache und Pufferpool

1. Caches - Abfrage-Cache

Die folgende Abbildung stammt von der offiziellen MySQL-Website: Systemdiagramm der MySQL-Architektur.

Der Abfrage-Cache, auf den oft Bezug genommen wird, ist der Cache-Teil in der folgenden Abbildung.

Wenn MySQL in zwei Teile unterteilt ist: die Serverebene und die Speicher-Engine-Ebene, dann befinden sich die Caches in der Serverebene.

Darüber hinaus sollten Sie wissen:

Wenn eine SQL-Anweisung an den MySQL-Server gesendet wird, prüft der MySQL-Server zunächst den Abfragecache, um festzustellen, ob die SQL-Anweisung bereits zuvor ausgeführt wurde. Wenn sie bereits zuvor ausgeführt wurde, werden die Abfrageergebnisse der vorherigen Ausführung in Form von Schlüssel-Wert im Abfragecache gespeichert. Der Schlüssel ist die SQL-Anweisung und der Wert ist das Abfrageergebnis. Diesen Vorgang nennen wir Query-Caching!

Wenn sich die gesuchten Daten nicht im Abfragecache befinden, führt MySQL die nachfolgende Logik aus und ruft die Daten über die Speicher-Engine ab. Und der Abfragecache wird ein gemeinsam genutzter Cache für Sitzungen sein, ja, er wird von allen Sitzungen gemeinsam genutzt.

Nachteile des Abfragecaches:

Solange ein SQL-Update für die Tabelle vorliegt, wird der Abfragecache der Tabelle ungültig. Wenn also der Anteil der CRUD-Tabellen in Ihrem Unternehmen ähnlich ist, kann der Abfragecache die Durchsatzeffizienz der Anwendung beeinträchtigen.

Sie können die Abfragezwischenspeicherung deaktivieren, indem Sie den Parameter query_chache_type=demand festlegen. Und in der MySQL-Version 8.0 wurde das Abfrage-Cache-Modul gelöscht.

Sie können daher in Ihrer individuellen Situation abwägen, ob die Deaktivierung einer Funktion notwendig ist.

Pufferpool

Wenn MySQL in zwei Teile unterteilt ist: die Serverebene und die Speicher-Engine-Ebene, dann befindet sich der Pufferpool in der Speicher-Engine-Ebene.

Tatsächlich weiß jeder, dass, egal ob es sich um einen Verbindungspool oder einen Cache-Pool handelt, solange es sich um einen XXX-Pool handelt, dieser auf Beschleunigung ausgelegt ist. Um beispielsweise das Lesen von Daten zu beschleunigen, entwickelt das Dateisystem des Betriebssystems jedes Mal einen gepufferten Schreibmechanismus für ineffiziente zufällige Festplatten-E/A.

Der Pufferpool ist ein Puffermechanismus, der von der MySQL-Speicher-Engine entwickelt wurde, um das Lesen von Daten zu beschleunigen. Der graue Teil im Bild unten ist die Mindmap von BufferPool. (Die Handschrift ist authentisch, sehr schön!)

Oben finden Sie Einzelheiten zum MySQL-Abfragecache und zum Pufferpool. Weitere Informationen zum MySQL-Abfragecache und zum Pufferpool finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Hauptfunktionen von MySQL Innodb: Einfügepuffer
  • Detaillierte Erklärung des Pufferpools in MySQL
  • Wichtige Parameter für die MySQL-Optimierung key_buffer_size table_cache
  • Optimieren Sie die MySQL-Key_Buffer_Size-Einstellungen
  • Was ist die geeignete Einstellung für MySQL read_buffer_size?
  • MySQL-Sortierung abgebrochen: Nicht genügend Sortierspeicher, Erhöhen Sie ggf. die Größe des Server-Sortierpuffers
  • Analyse der Innodb-Puffer-Trefferquote-Berechnung aus dem MySQL-Quellcode
  • Detaillierte Erklärung der Verwendung des MySQL-Operationspuffers in PHP
  • Zwei wichtige Parameter bei der Mysql-Optimierung und -Abstimmung: table_cache und key_buffer
  • Optimierungseinstellung des MySQL-Parameters key_buffer_size
  • Untersuchungen zur Pufferpool-Verschmutzung durch mysqldump
  • MySQL-Joinpufferprinzip

<<:  Über Generika der C++ TpeScript-Reihe

>>:  Detailliertes Tutorial zur Installation des Apache-Quellcodes und zur Konfiguration des virtuellen Hosts

Artikel empfehlen

Implementierung der Nginx-Konfiguration https

Inhaltsverzeichnis 1: Bereiten Sie das https-Zert...

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...

MySQL-Joinpufferprinzip

Inhaltsverzeichnis 1. MySQL-Joinpuffer 2. JoinBuf...

Detaillierte Erklärung zur Verbindung von Java mit Mysql Version 8.0.18

In Bezug auf die Verbindungsmethode zwischen Java...

Verwendung des Linux-Datumsbefehls

1. Befehlseinführung Mit dem Datumsbefehl wird di...

Mehrere gängige Methoden zum Senden von Anfragen mit Axios in React

Inhaltsverzeichnis Installieren und Einführen von...

Linux verwendet if, um zu bestimmen, ob ein Verzeichnis existiert.

So verwenden Sie „if“ in Linux, um festzustellen,...

JavaScript implementiert Feuerwerkseffekte mit Soundeffekten

Ich habe eine halbe Stunde gebraucht, um den Code...

So verwenden Sie die HTML 5 Drag & Drop-API in Vue

Die Drag & Drop-API fügt ziehbare Elemente zu...

So verwenden Sie das MySQL-Limit und lösen das Problem großer Paging-Aufgaben

Vorwort Wenn wir in der täglichen Entwicklung MyS...

So konfigurieren Sie einen Pfadalias für das React-Scaffolding

Die React-Version beim Schreiben dieses Artikels ...