Muss MySql ein Commit durchführen?

Muss MySql ein Commit durchführen?

Ob MySQL bei der Ausführung von Vorgängen wie Einfügen ein Commit benötigt, hängt von Ihrer Speicher-Engine ab.

Wenn die Engine keine Transaktionen unterstützt, wie etwa MyISAM, dann hat das Commit keine Wirkung.

Wenn es sich um eine Engine handelt, die Transaktionen unterstützt, z. B. InnoDB, müssen Sie wissen, ob Ihre Transaktion die automatische Transaktionsübermittlung (Commit) unterstützt.

Um zu sehen, ob Ihre Datenbank automatisch festgeschrieben wird, können Sie mysql> show variables like '%autocommit%'; verwenden, um dies zu überprüfen. Wenn es AUS ist, wird es nicht automatisch festgeschrieben und Sie müssen es manuell festschreiben (Sie können den Befehl „commit;“ direkt in der Befehlszeile verwenden). Andernfalls wird es automatisch festgeschrieben.

Es gibt drei Arten der Übermittlung von Daten: explizite Übermittlung, implizite Übermittlung und automatische Übermittlung.

Diese drei Typen werden unten beschrieben.

Explizites Commit

Ein direkt mit dem Befehl COMMIT durchgeführtes Commit ist ein explizites Commit.

Implizites Commit

Bei der indirekt durch SQL-Befehle erfolgten Übermittlung handelt es sich um eine implizite Übermittlung. Die Befehle sind:

ÄNDERN, PRÜFEN, KOMMENTIEREN, VERBINDEN, ERSTELLEN, TRENNEN, LÖSCHEN, BEENDEN, GRANT, NOAUDIT, BEENDEN, WIDERRUF, UMBENENNEN.

Automatische Übermittlung

Wenn AUTOCOMMIT auf ON gesetzt ist, wird nach der Ausführung der Anweisung insert, modify oder delete

Das System führt die Übermittlung automatisch durch. Dies ist eine automatische Übermittlung. Das Format ist: SQL>SET AUTOCOMMIT ON;

Seien Sie vorsichtig, wenn Sie die Befehle COMMIT / ROLLBACK verwenden. COMMIT / ROLLBACK werden nach der Ausführung von DML-Anweisungen (INSERT / DELETE / UPDATE / SELECT) verwendet. Nach der Ausführung einer DML-Anweisung werden die verarbeiteten Daten im Rollback-Segment abgelegt (mit Ausnahme von SELECT-Anweisungen) und warten darauf, dass der Benutzer ein Commit (COMMIT) oder Rollback (ROLLBACK) durchführt. Wenn der Benutzer COMMIT / ROLLBACK ausführt, werden die im Rollback-Segment abgelegten Daten gelöscht. (Nachdem die SELECT-Anweisung ausgeführt wurde, werden die Daten im gemeinsamen Pool gespeichert. Wenn dieselben Daten anderen zur Abfrage bereitgestellt werden, werden sie direkt aus dem gemeinsamen Pool extrahiert, ohne in die Datenbank zu gehen, was die Geschwindigkeit der Datenabfrage verbessert.)

Alle DML-Anweisungen müssen explizit festgeschrieben werden, d. h., COMMIT muss ausgeführt werden, nachdem die DML-Anweisung ausgeführt wurde. Andere, wie etwa DDL-Anweisungen, werden implizit festgeschrieben. Das heißt, nach dem Ausführen dieser Nicht-DML-Anweisungen hat die Datenbank bereits ein implizites Commit ausgeführt. Beispielsweise wurde nach dem Ausführen des Skripts CREATE TABLE die Tabelle erstellt und Sie müssen kein explizites Commit mehr ausführen.

Das könnte Sie auch interessieren:
  • Beispiel für PHP+MySQL-Transaktions-Rollback und -Commit

<<:  Implementierung der DOM-Operation in React

>>:  Konfiguration virtueller Domänennamen und Testüberprüfung in einer Linux\Nginx-Umgebung

Artikel empfehlen

vue cli3 implementiert die Schritte der Verpackung nach Umgebung

Das mit CLI3 erstellte Vue-Projekt wird als Nullk...

Informationen zur Installation von Homebrew auf dem Mac

Vor kurzem hat Xiao Ming einen neuen Mac gekauft ...

Zusammenfassung der HTML-Wissenspunkte für das Frontend (empfohlen)

1. HTML-Übersicht htyper Textauszeichnungssprache...

Eine elegantere Methode zur Fehlerbehandlung in JavaScript async await

Inhaltsverzeichnis Hintergrund Warum Fehlerbehand...

Beispielcode für CSS-Bildanimationseffekte (Fotorahmen)

Dieser Artikel stellt den Beispielcode für CSS-Bi...

So erstellen Sie MySQL-Indizes richtig

Die Indizierung ähnelt dem Erstellen bibliografis...

CSS kompletter Parallax-Scrolling-Effekt

1. Was ist Beim Parallax-Scrolling handelt es sic...

Detailliertes Tutorial zur Verwendung des Befehls xargs unter Linux

Hallo zusammen, ich bin Liang Xu. Sind Sie bei de...

Erfahrungsaustausch zur Optimierung von MySQL-Big-Data-Abfragen (empfohlen)

Ernsthafte MySQL-Optimierung! Wenn die MySQL-Date...

Zusammenfassung zum Erlernen von Docker-Befehlen in einem Artikel

Inhaltsverzeichnis Einführung Spiegel-Repository ...

Einführung in die Verwendung gängiger XHTML-Tags

Es gibt viele Tags in XHTML, aber nur wenige werd...