Beispielüberprüfung MySQL | Update-Feld mit demselben Wert zeichnet Binlog auf

Beispielüberprüfung MySQL | Update-Feld mit demselben Wert zeichnet Binlog auf

1. Einleitung

Vor ein paar Tagen fragte mich ein Entwicklungskollege, ob das Aktualisieren eines Felds auf denselben Wert ein Binlog aufzeichnen würde. Ich antwortete, dass dies nicht der Fall sei.

Genau genommen ist diese Antwort ungenau, da zwischen verschiedenen Szenarien unterschieden werden muss. Ob Aktualisierungsanweisungen im Binärprotokoll aufgezeichnet werden, hängt von der Einstellung des Binärprotokollformats ab. Übung macht in bestimmten Situationen den Meister.

Zweiter Test

2.1 binlog_format ist ROW-Modus

2.2 binlog_format ist im STATEMENT-Modus

Analysieren Sie den Binärprotokollinhalt und zeichnen Sie die Update-Anweisung vollständig auf.

2.2 binlog_format ist im MIXED-Modus

Wenn row_format gemischt oder Anweisungsformat ist, ändert sich die Größe des Binärprotokolls. Unabhängig davon, ob die Daten tatsächlich aktualisiert werden, zeichnet MySQL das ausgeführte SQL im Binärprotokoll auf.

Drei Schlussfolgerungen

Im zeilenbasierten Modus gleicht die Serverebene den zu aktualisierenden Datensatz ab und stellt fest, dass der neue Wert mit dem alten Wert übereinstimmt. Der Datensatz wird nicht aktualisiert und die Ebene kehrt direkt zurück, ohne das Binärprotokoll aufzuzeichnen.

Basierend auf der Anweisung oder dem gemischten Format führt MySQL die Aktualisierungsanweisung aus und zeichnet die Aktualisierungsanweisung im Binärprotokoll auf.

Warum zeichnen also Anweisungen und gemischte Anweisungen die komplette SQL-Anweisung auf? Dies werde ich im nächsten Artikel erläutern, da ich den Quellcode parsen muss und es mir bisher nicht gelungen ist, die MySQL-Debugging-Umgebung mit Clion zu kompilieren.

Das obige Beispiel dient zur Überprüfung, ob das Feld MySQL|update die Details des Binärprotokolls aufzeichnet, wenn es denselben Wert hat. Weitere Informationen zum MySQL-Updatefeld finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • MySQL aktualisiert Felder von einer Tabelle in eine andere
  • MySQL UPDATE-Anweisung zum Ersetzen eines Teils des Inhalts in einem Feld
  • Detaillierte Analyse der Syntax von Mysql-Updates zum Ändern mehrerer Felder und

<<:  Alibaba Cloud Nginx konfiguriert https, um ein Domänennamen-Zugriffsprojekt zu implementieren (grafisches Tutorial)

>>:  Pull-Down-Aktualisierung und Pull-Up-Ladekomponenten basierend auf Vue-Kapselung

Artikel empfehlen

Was tun, wenn Sie Ihr MySQL-Passwort vergessen?

Zweimal Ihr MySQL-Passwort vergessen? Zuerst habe...

Lösung für „Spezialisierter Schlüssel war zu lang“ in MySQL

Inhaltsverzeichnis Lösung 1 Lösung 2 Beim Erstell...

So entwickeln Sie Uniapp mit vscode

Da ich immer vscode zur Entwicklung von Front-End...

Vollständiges Installationstutorial zum Ubuntu 16.04-Image unter VMware

In diesem Artikel finden Sie das Installations-Tu...

Langsame MySQL-Abfragen und Protokolleinstellungen und -tests

1. Einleitung Durch Aktivieren des Slow Query Log...

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen In MySQL gibt ...

Zusammenfassung der langsamen MySQL-Abfragevorgänge

Erklärung langsamer MySQL-Abfragen Das MySQL Slow...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.27

Detailliertes Download-, Installations- und Konfi...

Eine vollständige Anleitung zur Konfiguration von Linux-Umgebungsvariablen

Konfiguration der Linux-Umgebungsvariablen Beim A...