MySQL-Transaktionsanalyse

MySQL-Transaktionsanalyse

Transaktion

Eine Transaktion ist eine grundlegende Einheit der Geschäftslogik.

Jede Transaktion besteht aus einer Reihe von SQL-Anweisungen.

DML-Anweisungen im Zusammenhang mit Transaktionen ( insert , delete , update )

Die Existenz von Transaktionen gewährleistet die Sicherheit der Daten.

Transaktionsmechanismus:

Bei jeder Ausführung einer DML-Anweisung wird der Vorgang aufgezeichnet, die Daten werden jedoch nicht geändert.

Führen Sie abschließend ein Commit der Transaktion aus (Datensätze löschen, Festplattendaten ändern) oder machen Sie die Transaktion rückgängig (Datensätze löschen, Daten nicht ändern).

Transaktionen haben vier Hauptmerkmale : ACID

  • A: Atomarität, eine Transaktion ist die kleinste Arbeitseinheit
  • C: Konsistenz, DML-Anweisungen in einer Transaktion sind entweder alle erfolgreich oder alle schlagen fehl
  • I: Isolation, Isolation zwischen Transaktionen.
  • D: Persistenz, die Daten werden endgültig auf der Festplatte gespeichert, bevor sie enden.

Transaktionsisolationsebene:

1. read uncommitted bedeutet, dass eine Transaktion Daten lesen kann, die eine andere Transaktion nicht festgeschrieben hat.

Dieses Level weist das Dirty-Read-Phänomen auf

2. Read ead committed , Sie können die festgeschriebenen Daten lesen

Diese Ebene löst das Dirty-Read-Problem, kann jedoch nicht wiederholt gelesen werden.

3. repeatable read : Die von einer Transaktion gelesenen Daten sind unabhängig von den von anderen Transaktionen übermittelten Daten. Die Daten zu Beginn der Transaktion können wiederholt gelesen werden.

Das Problem der nicht wiederholbaren Lesevorgänge ist gelöst, aber Phantomlesevorgänge sind weiterhin vorhanden und die gelesenen Daten sind nicht real.

4. Serialisiertes Lesen/serialisiertes Lesen. Alle Probleme sind gelöst, ähnlich wie die Thread-Sicherheit beim Multithreading. Es gibt jedoch Ineffizienzen. Weil Transaktionen in die Warteschlange gestellt werden müssen.

Die Standardisolationsstufe der mysql Datenbank ist Stufe 3. Wiederholbares Lesen.

mysql -Transaktionen werden standardmäßig automatisch festgeschrieben. Führen Sie ein DML aus, um die Daten auf der Festplatte direkt zu ändern.

Möchten Sie die Transaktion manuell bestätigen. Vor der Ausführung von DML. start transaction , führen Sie dann DML aus und führen Sie abschließend ein Commit oder Rollback aus.

Demonstrieren Sie das manuelle Rollback einer Transaktion:

Tabelle löschen, falls t_user1 vorhanden ist;

Tabelle t_user1 erstellen(

id int(3) Primärschlüssel auto_increment,

Benutzername varchar(10)

);

mysql> Tabelle t_user1 erstellen(

-> id int(3) Primärschlüssel auto_increment,

-> Benutzername varchar(10)

-> );

Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)

mysql> einfügen in t_user1(Benutzername) Werte('h1');

Abfrage OK, 1 Zeile betroffen (0,01 Sek.)

mysql> wähle * von t_user1;

+----+----------+

| ID | Benutzername |

+----+----------+

| 1 | h1 |

+----+----------+

1 Zeile im Satz (0,00 Sek.)

mysql> rollback; //Rollback der Transaktionsabfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> select * from t_user1; //Nach dem Rollback ist es immer noch dasselbe wie vorher, da mysql automatisch übermittelt +----+----------+

| ID | Benutzername |

+----+----------+

| 1 | h1 |

+----+----------+

1 Zeile im Satz (0,00 Sek.)

mysql> start transaction; //Transaktion manuell starten, automatische Transaktionsübermittlung deaktivieren. Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> einfügen in t_user1(Benutzername) Werte('h2');

Abfrage OK, 1 Zeile betroffen (0,01 Sek.)

mysql> einfügen in t_user1(Benutzername) Werte('h3');

Abfrage OK, 1 Zeile betroffen (0,00 Sek.)

mysql> einfügen in t_user1(Benutzername) Werte('h4');

Abfrage OK, 1 Zeile betroffen (0,00 Sek.)

mysql> wähle * von t_user1;

+----+----------+

| ID | Benutzername |

+----+----------+

| 1 | h1 |

| 2 | h2 |

| 3 | h3 |

| 4 | h4 |

+----+----------+

4 Zeilen im Satz (0,00 Sek.)

mysql> rollback; //Rollback-Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

mysql> wähle * von t_user1;

+----+----------+

| id | Benutzername | Am Ende sind die Daten auf der Festplatte noch immer dieselben wie vorher.

+----+----------+ Löschdatensatz rückgängig machen, ohne die Daten auf der Festplatte zu ändern.

| 1 | h1 |

+----+----------+

1 Zeile im Satz (0,00 Sek.)

Dies ist das Ende dieses Artikels über die MySQL-Transaktionsanalyse. Weitere relevante MySQL-Transaktionsinhalte finden Sie in den vorherigen Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • MySQL-Transaktionsdetails
  • MySQL-Datenbankindizes und -Transaktionen
  • Eine kurze Analyse der zugrunde liegenden Prinzipien von MySQL-Transaktionen und Isolationsebenen
  • Detaillierte Erklärung der Transaktionen und Indizes in der MySQL-Datenbank
  • Wie wird die Transaktionsisolation von MySQL erreicht?
  • Detaillierte Analyse von MySQL-Transaktionen

<<:  Nodejs erstellt ein Tool zur Dokumentsynchronisierung zur automatischen Synchronisierung mit dem Gitee-Implementierungscode

>>:  So verwenden Sie benutzerdefinierte Bilder in HTML zum Anzeigen von Kontrollkästchen

Artikel empfehlen

Lösung für das Problem, dass Docker-Protokolle nicht abgerufen werden können

Als ich den Dienst täglich überprüfte und mir die...

HTML-Framework_Powernode Java Academy

1. Rahmen In einem Browser-Dokumentfenster kann n...

Konfigurationsmethode für die Mehrfachauswahlfunktion von React Mouse

Im Allgemeinen verfügen Listen über Auswahlfunkti...

Vue implementiert einen visuellen Drag-Page-Editor

Inhaltsverzeichnis Drag & Drop-Implementierun...

HTML löst das Problem ungültiger Tabellenbreiteneinstellungen

Wenn Sie den Stil „table-layer:fixed“ für eine Ta...

MySQL-Interviewfragen: So richten Sie Hash-Indizes ein

Zusätzlich zu den B-Tree-Indizes bietet MySQL auc...

So installieren Sie eine MySQL-Datenbank unter Ubuntu

Ubuntu ist ein kostenloses und quelloffenes Deskt...

Neue Funktionen von JS ES: Einführung in Erweiterungsoperatoren

1. Spread-Operator Der Spread-Operator besteht au...

Kurztipps für die Linux-Befehlszeile: So finden Sie eine Datei

Wir alle haben Dateien auf unseren Computern gesp...

Eine kurze Einführung in die Basiskomponenten der VUE uni-app

1. Scroll-Ansicht Beim vertikalen Scrollen müssen...

Detaillierte Erklärung der Rolle des neuen Operators in Js

Vorwort Js ist heutzutage die am häufigsten verwe...

MySQL stellt Daten über Binlog wieder her

Inhaltsverzeichnis MySQL-Protokolldateien binlog ...