Detaillierte Erläuterung der MySQL-Transaktionsverwaltungsvorgänge

Detaillierte Erläuterung der MySQL-Transaktionsverwaltungsvorgänge

Dieser Artikel beschreibt die MySQL-Transaktionsverwaltung. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

In diesem Artikel:

  • Was ist Transaktionsmanagement
  • Transaktionsverwaltungsvorgänge
  • Rollback-Punkt
  • Standardmäßiges Transaktionsmanagement

Veröffentlichungsdatum: 18.04.2018


Was ist Transaktionsmanagement:

  • Eine Reihe von auszuführenden Vorgängen kann als Transaktion bezeichnet werden, und die Transaktionsverwaltung dient dazu, zu steuern, dass diese Vorgänge entweder vollständig ausgeführt werden oder gar nicht ausgeführt werden (ein klassisches Beispiel ist: A möchte Geld an B überweisen, zuerst wird A‘s Geld reduziert, doch plötzlich fällt die Datenbank aus, sodass B kein Geld mehr gutgeschrieben werden kann und B dann aufgrund eines Datenverlusts den Erhalt von A‘s Geld nicht bestätigt; hier soll die Transaktion sicherstellen, dass sowohl das Gutschreiben als auch das Abziehen von Geld vollständig ausgeführt werden oder gar nicht ausgeführt werden. Wenn das Gutschreiben fehlschlägt, findet auch das Abziehen von Geld nicht statt).
  • Die Bedeutung des Transaktionsmanagements: Sicherstellung der Integrität von Datenoperationen.
  • Nicht alle Daten-Engines in MySQL unterstützen die Transaktionsverwaltung, nur InnoDB unterstützt die Transaktionsverwaltung.

Funktionen zur Transaktionsverwaltung:

  • Atomarität: Der gesamte Vorgang einer Transaktion ist ein Ganzes und kann nicht aufgeteilt werden. Entweder ist alles erfolgreich oder alles schlägt fehl.
  • Konsistenz: Die Daten in der Datentabelle ändern sich vor und nach dem Transaktionsvorgang nicht.
  • Isolierung: Transaktionsvorgänge sind voneinander isoliert und werden nicht beeinträchtigt.
  • Persistenz: Sobald die Daten übermittelt wurden, können sie nicht mehr geändert werden und die Daten der Datentabelle werden dauerhaft geändert.

Transaktionsverwaltungsvorgänge:

  • Transaktionsmanagement aktivieren: Nach der Aktivierung werden folgende SQL-Anweisungen nicht sofort ausgeführt und die Ergebnisse nicht in die Tabelle, sondern in das Transaktionsprotokoll geschrieben.
    • Transaktion starten;
  • Rollback-Vorgang: Durch Rollback wird der Inhalt gelöscht, der nach dem Start der Transaktionsverwaltung in das Transaktionsprotokoll geschrieben wurde, d. h. der Zustand vor dem Start der Transaktionsverwaltung wird wiederhergestellt.
    • Syntax: Rollback;
    • Hinweis: Der Rollback-Vorgang führt nur ein Rollback des „geschriebenen“ Inhalts durch und kann die normale Lese- und Auswahlanweisung der Tabelle nicht zurücksetzen.
  • Transaktions-Commit: Schreiben Sie die Ergebnisse der SQL-Anweisung in die Datentabelle.
    • Syntax: commit:

Experimentiertisch:

Tabelle Bankkonto erstellen (ID int Primärschlüssel auto_increment, Name varchar (15), Geld int);
in Bankkonto (Name, Geld) Werte („Jobs“, 2000) einfügen;
in Bankkonto (Name, Geld) Werte („Rechnung“, 3000) einfügen; 

image

image

Auffüllen:

  • Wenn eine Commit- oder Rollback-Anweisung ausgeführt wird, wird die Transaktion automatisch geschlossen (zukünftige Änderungen werden implizit festgeschrieben).
  • Sperrmechanismus: Wenn bei einer Transaktion eine Tabelle bearbeitet wird und ein Index zum Abrufen eines Werts verwendet wird, wird die entsprechende Zeile gesperrt. Wenn kein Index zum Abrufen eines Werts verwendet wird, wird die gesamte Tabelle gesperrt. Nach der Sperrung können andere Verbindungen die angegebene Zeile oder Tabelle nicht mehr bearbeiten.

Rollback-Punkt:

  • Der Rollback-Punkt kann den Rollback-Speicherort angeben. Wenn Sie beispielsweise 100 Befehle eingegeben haben und feststellen, dass der 81. Befehl falsch eingegeben wurde, können Sie viel Zeit sparen, wenn Sie zu einem Punkt vor Befehl 81 zurückkehren, anstatt zu dem Punkt vor dem Start der Transaktion. 】
  • Grammatik:
    • Erstellen Sie einen Rollback-Punkt: Savepoint Rollback-Punktname;
    • Rollback zum Rollback-Punkt: Rollback zum Namen des Rollback-Punkts;

image

Auffüllen:

  • Der Rollback-Punkt wird nach dem Schließen der Transaktionsverwaltung (nach Rollback oder Commit) ungültig. Verwenden Sie den Rollback-Punkt nicht außerhalb der Transaktion.

Standardmäßiges Transaktionsmanagement:

  • Standardmäßig ist die MySQL-Transaktionsverwaltung deaktiviert (automatische Transaktion) und die Ergebnisse der Anweisung werden sofort in die Datentabelle geschrieben.
    • Sie können eine Show-Variable wie „autocommit“ verwenden, um zu prüfen, ob automatische Transaktionen aktiviert sind. Ein Wert von 1 bedeutet, dass automatische Transaktionen aktiviert sind, und ein Wert von 0 bedeutet, dass sie deaktiviert sind.
  • Automatische Transaktionen deaktivieren: Setzen Sie Autocommit = 0. [Nach dem Deaktivieren ist zum Ausführen jeder Anweisung ein Commit erforderlich, was dem Starten der Transaktionsverwaltung entspricht.]
    • Beachten Sie jedoch, dass das festgelegte Autocommit für Sitzungsvariablen gilt und diese Einstellung daher nur in dieser Sitzungsverbindung wirksam ist.

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Zusammenfassung der Kenntnisse zu MySQL-Transaktionsvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-Indexvorgängen“, „Zusammenfassung der häufig verwendeten MySQL-Funktionen“, „Zusammenfassung der Kenntnisse zu MySQL-Protokollvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-gespeicherten Prozeduren“ und „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung langer Transaktionsbeispiele in MySQL
  • Detaillierte Erklärung von MySQL-Transaktionen und MySQL-Protokollen
  • Detaillierte Erläuterung des Implementierungsprinzips von MySQL-Transaktionen und Spring-Isolationsebenen
  • Ausführliche Erläuterung der Konzepte und Verwendung von MySQL-Transaktionen
  • Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene
  • Beispielanalyse für MySQL-Transaktionen, Isolationsebenen und Sperrenverwendung
  • Detailliertes Beispiel zur Implementierung von Transaktions-Commit und -Rollback in MySQL
  • MySQL-Transaktions-Tutorial Yii2.0 Händler-Auszahlungsfunktion
  • So finden Sie Informationen zu nicht festgeschriebenen Transaktionen in MySQL
  • Detaillierte Erläuterung des Implementierungsprinzips von ACID-Transaktionen in MySQL
  • Beispiel für eine MySQL-Datenbank-übergreifende Transaktions-XA-Operation
  • Tiefgreifendes Verständnis langer MySQL-Transaktionen

<<:  JavaScript-Datenvisualisierung: ECharts-Kartenerstellung

>>:  So führen Sie das Springboot-Projekt im Docker aus

Artikel empfehlen

MySQL-Initialisierungskennwortvorgang unter Mac

Eine einfache Aufzeichnung der Datenbank-Startpro...

Vue CodeMirror realisiert den Effekt des Online-Code-Compilers

Vorwort Wenn wir den Effekt der Online-Codekompil...

Natives JS zum Erzielen eines coolen Paging-Effekts

In diesem Artikel wird anhand eines Beispiels ein...

Natives JS zum Erreichen von Spezialeffekt-Meldungsfeldern

In diesem Artikel wird ein Nachrichtenfeld mit Sp...

Sprechen Sie über implizite Konvertierung in MySQL

Im Laufe der Arbeit werden Sie auf viele Fälle im...

SQL-Funktion zum Zusammenführen eines Feldes

Vor kurzem musste ich alle Felder einer verknüpft...

Detaillierte Zusammenfassung von MySQL und verbindungsbezogenen Timeouts

MySQL und verbindungsbezogene Timeouts Vorwort: H...

So löschen Sie eine MySQL-Tabelle

Das Löschen einer Tabelle in MySQL ist sehr einfa...