Die zum Speichern der Daten in der Datenbank verwendete Datei wird als Datendatei und die Protokolldatei als Protokolldatei bezeichnet. Darüber hinaus wird die Leistung sehr schlecht sein, wenn bei jedem Lese- und Schreibvorgang direkt auf die Festplatte zugegriffen wird. Daher verfügt die Datenbank über einen Cache, der Datencache ist der Datenpuffer und der Protokollcache ist der Protokollpuffer. SQL-AusführungsreihenfolgeWenn wir eine Aktualisierungsanweisung ausführen, z. B. „Update Table Set c=c+1“ mit ID = 2, lautet die Ausführungsreihenfolge wie folgt:
Bin-Protokoll Was istBinärprotokolle werden als Archivprotokolle oder Binärprotokolle bezeichnet. Sie gehören zur MySQL-Serverebene und werden verwendet, um Änderungen in der Datenbanktabellenstruktur und den Tabellendaten aufzuzeichnen. Einfach ausgedrückt kann man darunter verstehen, dass jede geänderte SQL-Anweisung gespeichert wird, z. B. Einfügen, Löschen, Aktualisieren (natürlich nicht nur SQL, sondern auch Transaktions-ID, Ausführungszeit usw.). Wann wird es produziertWenn eine Transaktion festgeschrieben wird, werden alle SQL-Anweisungen in der Transaktion gleichzeitig in einem bestimmten Format im Binärprotokoll aufgezeichnet. Was nützt esEs gibt zwei Hauptfunktionen: Master-Slave-Replikation und Datenwiederherstellung
Wann wird die Festplatte gelöscht?Unterscheidung zwischen innodb_flush_log_at_trx_commit und sync_binlog Binärprotokoll hängt vom Parameter sync_binlog ab
DateiprotokollierungsmodusBin-Protokoll verfügt über drei Dateiaufzeichnungsmodi: Zeile, Anweisung und gemischt
Vorteile: Es kann die Änderungsdetails jeder Datenzeile klar aufzeichnen und die Konsistenz der Master-Slave-Daten vollständig sicherstellen. Nachteile: Bei Batchvorgängen, z. B. beim Ändern der Tabelle, wird eine große Anzahl von Protokollen generiert.
Vorteile: geringe Menge an Protokolldaten, reduzierte Festplatten-E/A, verbesserte Speicher- und Wiederherstellungsgeschwindigkeit Nachteile: in einigen Fällen kann es zu Master-Slave-Inkonsistenzen kommen, z. B. wenn die SQL-Anweisung Funktionen wie **now()** enthält
Redo-Protokoll Was istDas Redo-Protokoll wird als Redo-Log bezeichnet. Es ist ein Protokoll auf der Ebene der InnoDB-Speicher-Engine. Es zeichnet die Änderungsinformationen der physischen Seite auf und nicht, wie eine bestimmte Zeile oder mehrere Zeilen geändert werden. Wann wird es produziertWenn eine Transaktion gestartet wird, wird das Redo-Log geschrieben. Das Redo-Protokoll wird nicht beim Festschreiben der Transaktion auf die Festplatte geschrieben, sondern während der Ausführung der Transaktion. Was nützt esKann zur Datenwiederherstellung verwendet werden. Das Redo-Protokoll wird nach dem Start der Transaktion auf die Festplatte geschrieben. Da es sich um ein sequentielles IO handelt, ist die Schreibgeschwindigkeit hoch. Wenn der Server plötzlich einen Stromausfall erleidet, verwendet die InnoDB-Engine ein Redo-Log, um die Datenbank auf den Zeitpunkt vor dem Stromausfall zurückzusetzen und so die Datenintegrität sicherzustellen. Wann wird die Festplatte gelöscht? InnoDB schreibt das Protokoll zuerst in den Protokollpuffer, leert es dann aus dem Protokollpuffer in den Betriebssystempuffer und ruft schließlich die fsync-Funktion des Dateisystems auf, um das Protokoll auf die Festplatte zu leeren. Der Zeitpunkt des Redo-Log-Schreibens wird durch den Parameter
Der allgemeine Wert ist 2, da die Daten auch bei einem MySQL-Absturz nicht verloren gehen. Nur beim Absturz des gesamten Servers geht 1 Sekunde an Daten verloren. Binärprotokoll vs. Redo-ProtokollNach dem Lesen der obigen Einführung habe ich das Gefühl, dass Bin-Log und Redo-Log sehr ähnlich sind. Beide zeichnen Datenänderungen auf und können zur Wiederherstellung verwendet werden. Tatsächlich bestehen zwischen ihnen immer noch deutliche Unterschiede.
Wenn die gesamte Datenbank gelöscht wird, kann sie über das Redo-Log wiederhergestellt werden? NEIN! Da sich das Redo-Protokoll auf das Speichern der Datenänderungen einer Transaktion konzentriert, haben die Daten im Redo-Protokoll tatsächlich keinen Referenzwert, wenn die Daten im Speicher auf die Festplatte geschrieben werden. Darüber hinaus überschreibt das Redo-Protokoll historische Daten und es ist unmöglich, alle Daten darüber wiederherzustellen. Undo-ProtokollDetaillierte Analyse der MySQL-Transaktionsprotokolle Was istDas Undo-Protokoll wird als Rollback-Protokoll bezeichnet und gehört zur InnoDB-Speicher-Engine-Schicht. Es ist ein logisches Protokoll, das jede Datenzeile aufzeichnet. Wenn wir Daten ändern, wird ein Rückgängig-Protokoll generiert. Es kann davon ausgegangen werden, dass beim Einfügen eines Datenelements das Rückgängig-Protokoll ein entsprechendes Löschprotokoll aufzeichnet und umgekehrt. Wann wird es produziertVor dem Start der Transaktion ein Undo-Log für die aktuelle Version generieren Was nützt esHauptfunktion: Bereitstellung von Rollback und Multi-Version Concurrency Control (MVCC)
Oben finden Sie den detaillierten Inhalt der Zusammenfassung des Wissens zu MySQL-Protokollen. Weitere Informationen zu MySQL-Protokollen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: React-Internationalisierung react-i18next ausführliche Erklärung
>>: Implementierungsmethode des Nginx+Tomcat-Lastausgleichsclusters
Das <link>-Tag definiert die Beziehung zwis...
Lastenausgleich ist ein häufig verwendetes Mittel...
Die meisten Navigationsleisten sind horizontal an...
Wir möchten in HTML und CSS die Farbe eines Butto...
Ich glaube, jeder ist mit Datenbankindizes vertra...
Machen Sie sich eine Notiz, damit Sie später dara...
1. Einleitung Die bisherige Programmarchitektur k...
Inhaltsverzeichnis Überblick 1. Übersicht über Ei...
1. Erstellen Sie ein Konfigurationsdateiverzeichn...
Erstens weiß ich nicht, warum ich mich über die B...
Inhaltsverzeichnis Vorwort 1. Rendern 2. Code 3. ...
Um das Problem „Eingeben != Absenden“ zu implement...
body{font-size:12px; font-family:"Schriftart...
Abfrage des aktuellen Datums AKTUELLES DATUM AUSW...
Inhaltsverzeichnis 1. ES-Syntax-Getter und -Sette...