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

Verwenden Sie das ab-Tool, um einen API-Stresstest auf dem Server durchzuführen

Inhaltsverzeichnis 1 Eine kurze Einführung in den...

Block- und Zeilenelemente, Sonderzeichen und Verschachtelungsregeln in HTML

Wenn wir die Verschachtelungsregeln grundlegender...

Installieren Sie Windows Server 2019 auf VMware Workstation (Grafisches Tutorial)

Wenn Sie aufgefordert werden, einen Schlüssel ein...

So unterstreichen Sie das A-Tag und ändern die Farbe vor und nach dem Klicken

Code kopieren Der Code lautet wie folgt: ein:link...

Wie gut wissen Sie über die Vererbung in JavaScript?

Inhaltsverzeichnis Vorwort Die Beziehung zwischen...

Zusammenfassung der Benutzererfahrung

Unabhängig davon, ob Sie an Software oder Websites...

So aktivieren Sie TLS- und CA-Authentifizierung in Docker

Inhaltsverzeichnis 1. Zertifikat generieren 2. Ak...

JS 4 super praktische Tipps zur Verbesserung der Entwicklungseffizienz

Inhaltsverzeichnis 1. Kurzschlussurteil 2. Option...

Drei Möglichkeiten, das horizontale Div-Layout auf beiden Seiten auszurichten

In diesem Artikel werden hauptsächlich drei Metho...

Installieren Sie Redis und MySQL auf CentOS

1|0MySQL (MariaDB) 1|11. Beschreibung Das Datenba...

Linux Dateisystemtyp anzeigen Beispielmethode

So überprüfen Sie den Dateisystemtyp einer Partit...

Teilen Sie 8 MySQL-Fallstricke, die Sie erwähnen müssen

MySQL ist einfach zu installieren, schnell und ve...