1. Einleitung Nach dem Start von MySQL wird BufferPool initialisiert. Bevor Sie Abfragevorgänge ausführen, sind die Cache-Seiten in BufferPool leere Speicherblöcke, die noch nicht verwendet wurden und in denen keine Daten gespeichert sind. Und Sie wissen auch, dass die Cache-Seite, auf die es verweist, direkt und eindeutig über die Beschreibungsinformationen der Cache-Seite gefunden werden kann. Haben Sie schon einmal darüber nachgedacht, auf welcher Pufferseite die Datenseite abgelegt werden soll, die wir von der Festplatte lesen? Dieses Problem führt zur Anzeige der Freiliste. 2. Kostenlose Liste Tatsächlich handelt es sich bei der Free List um eine bidirektional verknüpfte Liste, die im Buffer Pool basierend auf Cache-Seitenbeschreibungsinformationen organisiert ist. Mit anderen Worten: Jeder Knoten in der freien Liste enthält die Beschreibungsinformationen, die der Cache-Seite entsprechen. Und die angegebene Cache-Seite (Cache-Seite) finden Sie über die Beschreibungsinformationen Die ursprüngliche Absicht von InnoDB bei der Entwicklung von Free Lists besteht darin, die oben genannten Probleme zu lösen. Wenn auf dieser Cache-Seite keine Daten gespeichert sind, werden die entsprechenden Beschreibungsinformationen in der Free List verwaltet. Wenn Sie zu diesem Zeitpunkt eine von der Festplatte gelesene Datenseite in die Cache-Seite einfügen möchten, müssen Sie zuerst einen Knoten in der freien Liste suchen (alle Knoten in der freien Liste verweisen auf eine Cache-Seite, die noch nie verwendet wurde). Anschließend können Sie die gelesene Datenseite in die Cache-Seite einfügen, auf die der Knoten verweist. Entsprechend: Nachdem die Daten in die Datenseite eingefügt wurden. Der entsprechende Beschreibungsinformationsblock wird aus der Freiliste entfernt. 3. Wie kann festgestellt werden, ob sich die Datenseite im Cache befindet? Fragen Sie sich, woher MySQL weiß, ob sich die gerade gelesene Datenseite auf der Cache-Seite befindet? Die Implementierung dieser Funktion basiert auf einer anderen Datenstruktur: Hash-Tabelle Schlüssel = Tablespace-Nummer + Datenseitennummer Wert = Cache-Seitenadresse Wenn es in der Hash-Tabelle vorhanden ist, bedeutet dies, dass die Datenseite bereits im Pufferpool vorhanden ist und die Cache-Seite im Pufferpool zuerst verwendet wird. Ich glaube, Sie können definitiv erraten, warum die Cache-Seiten im Pufferpool zuerst verwendet werden! Erstens wird zufälliger Festplatten-E/A vermieden. Zweitens kann es sich bei den Daten auf der Cache-Seite um geänderte, schmutzige Daten handeln. Oben finden Sie eine ausführliche Erläuterung des FreeList-Mechanismus von MySQL. Weitere Informationen zum FreeList-Mechanismus von MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Umfassendes Verständnis von Zeilenhöhe und vertikaler Ausrichtung
Was ist Keepalive? Bei der normalen Entwicklung m...
Inhaltsverzeichnis Vorwort 1. Startup-Management ...
Inhaltsverzeichnis 1 Aktuellen Datenbankinhalt ei...
Ich wurde in letzter Zeit häufig zu einer offensi...
Inhaltsverzeichnis Vorwort Aufzählbare Eigenschaf...
In diesem Artikelbeispiel wird der spezifische Co...
Der MySQL-Server läuft mit der Option --skip-gran...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
html , Adresse , Blockzitat , Text , dd , div , d...
Inhaltsverzeichnis Konfigurationsbefehlsschritte ...
Beim Erstellen von Webseiten tritt häufig das Pro...
Zweck Kapseln Sie die Karussellkomponente und ver...
Verwandte Artikel: Anfänger lernen einige HTML-Ta...
Vertreter / egrep Syntax: grep [-cinvABC] 'wo...
1. Rufen Sie den Hostcomputer des Docker-Containe...