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

Erläuterung des Vue.js $refs-Anwendungsfalls

Trotz Props und Events müssen Sie manchmal immer ...

Die perfekte Lösung für Vue-Routing-Fallback (vue-route-manager)

Inhaltsverzeichnis Routenplaner Hintergrund Erste...

js Array-Einträge () Holen Sie sich die Iterationsmethode

Inhaltsverzeichnis 1. Detaillierte Syntax der Met...

Beschreibung der HTML-Meta-Viewport-Attribute

Was ist ein Ansichtsfenster? Mobile Browser platz...

Verwendung von Kubernetes YAML-Dateien

Inhaltsverzeichnis 01 Einführung in YAML-Dateien ...

Beispielcode für HTML-Framesets

Dieser Artikel stellt ein möglichst einfaches Fra...

Lernen, React-Gerüste zu bauen

1. Komplexität des Front-End-Engineerings Wenn wi...

Lösung für den Fehler bei der Installation von Docker auf der CentOS-Version

1. Versionsinformationen # Katze /etc/system-rele...

Implementierung des Docker-Verpackungsimages und Konfigurationsänderung

Ich bin in letzter Zeit beim Erlernen von Docker ...

Grundlegender JSON-Betriebsleitfaden in MySQL 5.7

Vorwort Aufgrund der Projektanforderungen werden ...