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

So finden Sie Informationen zu nicht festgeschriebenen Transaktionen in MySQL

Vor einiger Zeit habe ich einen Blogbeitrag mit d...

So verwenden Sie reguläre Ausdrucksabfragen in MySql

Reguläre Ausdrücke werden häufig verwendet, um Te...

Prinzip und Anwendung der MySQL-Verbindungsabfrage

Überblick Eine der leistungsstärksten Funktionen ...

MySQL 5.7.17 Winx64 Installations- und Konfigurations-Tutorial

Heute habe ich die MySQL-Datenbank erneut auf mei...

Unterschied zwischen var und let in JavaScript

Inhaltsverzeichnis 1. Bereiche werden in verschie...

Analyse des neuen Ressourcenmanagementsystems von CocosCreator

Inhaltsverzeichnis 1. Ressourcen und Konstruktion...

WeChat-Miniprogramme implementieren Sternebewertung

In diesem Artikel wird der spezifische Code für d...

Detaillierte Erklärung zur Verwendung von MySQL mysqldump

1. Einführung in mysqldump mysqldump ist ein logi...

Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten

Mysql konvertiert Abfrageergebnissatz in JSON-Dat...

Ubuntu-Grundeinstellungen: Installation und Nutzung des OpenSSH-Servers

Protokollieren Sie die Installation und Verwendun...

Detaillierte Erklärung des Lebenszyklus von Angular-Komponenten (Teil 2)

Inhaltsverzeichnis 1. Haken anzeigen 1. Was bei d...

Hinweise zur Adresszuordnung von Gerätetreibern im Linux-Kernel

#include <asm/io.h> #define ioremap(Cookie,...