Vorwort: Im vorherigen Artikel wurden mehrere allgemeine Protokolle im MySQL-System beschrieben. Tatsächlich gibt es transaktionsbezogene Protokolle, Redo-Protokolle und Undo-Protokolle, die nicht eingeführt wurden. Im Vergleich zu anderen Protokollen sind das Redo-Protokoll und das Undo-Protokoll mysteriöser und schwieriger zu beobachten. In diesem Artikel werden hauptsächlich die Funktionen sowie die Betriebs- und Wartungsmethoden dieser beiden Arten von Transaktionsprotokollen vorgestellt. 1. Protokoll wiederholen Wir alle wissen, dass Persistenz eines der vier Hauptmerkmale von Transaktionen ist. Insbesondere werden die an der Datenbank vorgenommenen Änderungen dauerhaft gespeichert, solange die Transaktion erfolgreich übermittelt wird, und es ist aus keinem Grund möglich, zum ursprünglichen Zustand zurückzukehren. Wie stellt MySQL also Konsistenz sicher? Der einfachste Ansatz besteht darin, bei jedem Festschreiben der Transaktion alle geänderten Datenseiten, die an der Transaktion beteiligt sind, auf die Festplatte zu aktualisieren. Dies führt jedoch zu schwerwiegenden Leistungsproblemen, hauptsächlich in zweierlei Hinsicht:
Aus diesem Grund hat MySQL ein Redo-Protokoll entwickelt, das speziell nur die von Transaktionen an der Datenseite vorgenommenen Änderungen aufzeichnet. Dadurch können Leistungsprobleme perfekt gelöst werden (relativ gesehen ist die Datei kleiner und es handelt sich um sequentielle E/A). Das Redo-Log besteht aus zwei Teilen: Der eine ist der Log-Puffer im Speicher (Redo-Log-Puffer) und der andere ist die Log-Datei auf der Festplatte (Redo-Log-Datei). Jedes Mal, wenn MySQL eine DML-Anweisung ausführt, schreibt es zuerst den Datensatz in den Redo-Log-Puffer und dann zu einem bestimmten Zeitpunkt mehrere Operationsdatensätze in die Redo-Log-Datei. Standardmäßig wird das Redo-Protokoll auf der Festplatte durch zwei physische Dateien mit den Namen ib_logfile0 und ib_logfile1 dargestellt. Die mit dem Redo-Log in Zusammenhang stehenden Parameter werden im Folgenden kurz vorgestellt:
Das Ändern des Redo-Logs und seiner Puffergröße erfordert einen Neustart der Datenbankinstanz. Es wird empfohlen, während der Initialisierung eine Bewertung vorzunehmen. Sie können die Anzahl und Größe der Redo-Log-Gruppen entsprechend erhöhen, insbesondere wenn Ihre Datenbankinstanz häufig aktualisiert wird. Es wird jedoch nicht empfohlen, die Redo-Log-Größe zu groß einzustellen. 2. Protokoll rückgängig machen Das Undo-Log wird hauptsächlich verwendet, um die Atomizität von Daten sicherzustellen. Es speichert eine Version der Daten, bevor die Transaktion erfolgt, und kann zum Rollback verwendet werden. Beispielsweise gibt es für eine INSERT-Anweisung ein entsprechendes Undo-Protokoll für DELETE und für jede UPDATE-Anweisung ein entsprechendes Undo-Protokoll für das entgegengesetzte UPDATE, sodass die Daten bei Auftreten eines Fehlers auf den Zustand vor der Transaktion zurückgesetzt werden können. Gleichzeitig ist das Undo-Log auch der Schlüssel zur Implementierung von MVCC (Multi-Version Concurrency Control). In MySQL 5.7 werden Undo-Protokolle standardmäßig im gemeinsam genutzten Tablespace ibdata gespeichert. Sie können es auch in eine separate Datei ändern, indem Sie während der Initialisierung Parameter konfigurieren. Hier sind einige mit dem Undo-Log verbundene Parameter:
Mit dem Undo-Protokoll verbundene Parameter werden selten geändert. MySQL 8.0 aktiviert standardmäßig unabhängige Tablespaces, was die Größeneinstellung des Undo-Log-Tablespaces flexibler machen kann. Zusammenfassen: In diesem Artikel werden hauptsächlich die Funktionen des Redo-Logs und des Undo-Logs sowie die zugehörigen Parametereinstellungen vorgestellt. Der Artikel wurde in Eile geschrieben. Wenn Fehler auftreten, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Was die tieferen Inhalte dieser beiden Protokolltypen angeht, ist der Autor vielleicht noch nicht kompetent genug, um ausführlicher zu schreiben. Nun, es wurden zwei Artikel über MySQL-bezogene Protokolle geschrieben. Ich hoffe, Sie können etwas lernen. Das könnte Sie auch interessieren:
|
<<: Verwendung des Linux-Befehls „sar“ und Analyse von Codebeispielen
>>: Vue+Element implementiert Dropdown-Menü mit lokaler Suchfunktion – Beispiel
Inhaltsverzeichnis Hintergrund Virtuelle Dateien ...
Inhaltsverzeichnis 1. Geben Sie unterschiedliche ...
Inhaltsverzeichnis Überblick Hash-Eigenschaften G...
Beim Styling unserer Webseiten haben wir die Wahl...
1. Ereignissprudeln : Wenn im Prozess der Ereigni...
Installieren Sie TomCat unter Windows Dieser Arti...
Heureka: 1. Erstellen Sie ein JDK-Image Starten S...
Hier erfahren Sie, wie Sie nach der Verkleinerung...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort Bevor wir mit der Erklärung des Prinzips ...
RGB-Farbtabelle Farbe Englischer Name RGB 16 Farb...
Die folgenden drei Methoden werden häufig verwende...
Eine einfach verkettete Liste kann nur vom Anfang...
Inhaltsverzeichnis Nachfragehintergrund Gedankena...
Wie lassen sich Kompatibilitätsprobleme mit virtu...