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

Beispiel für die Erschöpfung der MySQL-Auto-Increment-ID

Anzeigedefinitions-ID Wenn die in der Tabelle def...

Hyperlink-Tag für HTML-Webseiten

Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...

Vue3-Kompilierungsprozess - Quellcodeanalyse

Vorwort: Vue3 ist schon seit langem verfügbar. Vo...

Ein Problem mit der Bereitstellung von MySQL 5.5

MySQL-Bereitstellung Derzeit stellt das Unternehm...

Details zum MySQL-Datentyp

Inhaltsverzeichnis 1. Numerischer Typ 1.1 Klassif...

Ursachen und Lösungen für MySQL-Deadlocks

Die Datenbank ist wie das Betriebssystem eine gem...

MySQL-Tutorial: Datendefinitionssprache (DDL), Beispiel, ausführliche Erklärung

Inhaltsverzeichnis 1. Einführung in die Grundfunk...

So verwenden Sie Docker Swarm zum Erstellen von WordPress

Ursache Ich habe WordPress einst auf Vultr einger...

Implementierung der Anmeldeseite des tatsächlichen Kampfprotokolls von Vue

Inhaltsverzeichnis 1. Vorbereitende Maßnahmen 1.1...

JavaScript-Tippspiel

In diesem Artikel wird der spezifische JavaScript...

So debuggen Sie das Loader-Plugin in einem Webpack-Projekt

Als ich kürzlich lernte, wie man webpack verwende...

Tutorial zum schnellen Bereitstellen von Clickhouse mit Docker-Compose

ClickHouse ist ein spaltenorientiertes Open-Sourc...