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

Warum kann das in HTML eingebettete Video im MP4-Format nicht abgespielt werden?

Der folgende Code befindet sich in meiner test.htm...

Detaillierte Erklärung, wie eine SQL-Anweisung in MySQL ausgeführt wird

Überblick Ich habe vor Kurzem begonnen, mir Wisse...

Vue 2.0 Grundlagen im Detail

Inhaltsverzeichnis 1. Funktionen 2. Beispiele 3. ...

So konfigurieren Sie den Runner-Container in Docker

1. Erstellen Sie einen Runner-Container mk@mk-pc:...

MySQL MSI Installations-Tutorial unter Windows 10 mit Bildern und Text

1. Herunterladen 1. Klicken Sie auf den neuesten ...

Detaillierte Erklärung der Socket (TCP)-Bindung aus dem Linux-Quellcode

Inhaltsverzeichnis 1. Ein einfachstes serverseiti...

HTML-Lernhinweise – Detaillierte Erklärung der HTML-Syntax (unbedingt lesen)

1. Was ist die HTML-Auszeichnungssprache? HTML is...

Docker-Bereitstellung von Kafka und Spring Kafka-Implementierung

In diesem Artikel wird hauptsächlich die Bereitst...

Beispiel zum Überprüfen der Kapazität einer MySQL-Datenbanktabelle

Dieser Artikel stellt die Befehlsanweisungen zum ...