Detaillierte Erklärung der Truncate-Verwendung in MySQL

Detaillierte Erklärung der Truncate-Verwendung in MySQL

Vorwort:

Wenn wir eine Tabelle löschen möchten, verwenden wir häufig die Truncate-Anweisung. Meistens kümmern wir uns nur darum, ob die Anforderungen erfüllt werden können, ohne über die Anwendungsszenarien und Vorsichtsmaßnahmen solcher Aussagen nachzudenken. Dieser Artikel stellt hauptsächlich die Verwendung und Vorsichtsmaßnahmen der Truncate-Anweisung vor.

1.Truncate-Verwendungssyntax

Die Funktion von Truncate besteht darin, die Tabelle zu löschen oder abzuschneiden, und kann nur auf die Tabelle angewendet werden. Die Syntax von „truncate“ ist sehr einfach, lassen Sie einfach den Tabellennamen folgen, zum Beispiel: truncate table tbl_name oder truncate tbl_name .

Zum Ausführen der Truncate-Anweisung ist die Drop-Berechtigung für die Tabelle erforderlich. Logisch gesehen ähnelt Truncate Table einer Delete-Anweisung, die alle Zeilen löscht, oder einer Kombination aus Drop Table und anschließender Create Table-Anweisung. Um eine hohe Leistung zu erreichen, wird die DML-Methode zum Löschen von Daten umgangen, sodass kein Rollback möglich ist. Obwohl „truncate table“ dem „delete“ ähnelt, wird es als DDL-Anweisung und nicht als DML-Anweisung klassifiziert.

2. Vergleich zwischen Truncate, Drop und Delete

Wie oben erwähnt, ist Truncate Delete und Drop sehr ähnlich. Tatsächlich gibt es zwischen diesen dreien noch erhebliche Unterschiede. Im Folgenden finden Sie einen kurzen Vergleich der Ähnlichkeiten und Unterschiede zwischen den dreien.

  • „truncate“ und „drop“ sind DDL-Anweisungen und können nach der Ausführung nicht zurückgesetzt werden; „delete“ ist eine DML-Anweisung und kann zurückgesetzt werden.
  • „truncate“ kann nur auf Tabellen angewendet werden; „delete“ und „drop“ können auf Tabellen, Ansichten usw. angewendet werden.
  • Mit Truncate werden alle Zeilen in der Tabelle gelöscht, die Tabellenstruktur und ihre Einschränkungen, Indizes usw. bleiben jedoch unverändert. Mit drop werden die Tabellenstruktur und die Einschränkungen, Indizes usw. gelöscht, von denen sie abhängt.
  • Durch Abschneiden wird der Autoinkrementwert der Tabelle zurückgesetzt. Durch Löschen geschieht dies nicht.
  • Durch Truncate werden die mit der Tabelle verknüpften Löschtrigger nicht aktiviert; durch Löschen geschieht dies.
  • Nach dem Abschneiden wird der von der Tabelle und dem Index belegte Speicherplatz auf die ursprüngliche Größe zurückgesetzt. Der Löschvorgang verringert den von der Tabelle oder dem Index belegten Speicherplatz nicht und die Drop-Anweisung gibt den gesamten von der Tabelle belegten Speicherplatz frei.

3. Nutzungsszenarien und Vorsichtsmaßnahmen einschränken

Durch die vorherige Einführung können wir das Verwendungsszenario der Truncate-Anweisung leicht ableiten, dh Truncate kann verwendet werden, wenn die Tabellendaten völlig unnötig sind. Wenn Sie einige Daten löschen möchten, verwenden Sie „delete“, und denken Sie daran, eine Where-Klausel einzuschließen. Wenn Sie eine Tabelle löschen möchten, verwenden Sie natürlich „drop“. Wenn Sie die Tabelle behalten und alle Daten löschen möchten und diese nichts mit Transaktionen zu tun haben, verwenden Sie „truncate“. Wenn sie mit Transaktionen zusammenhängt oder Sie einen Trigger auslösen möchten, verwenden Sie trotzdem „delete“. Wenn Sie die Fragmente innerhalb der Tabelle sortieren möchten, können Sie „truncate“ verwenden und die Daten anschließend erneut einfügen.

In jedem Fall ist das Abschneiden von Tabellen ein risikoreicher Vorgang, insbesondere in Produktionsumgebungen müssen Sie vorsichtiger sein. Hier sind einige zu beachtende Punkte. Ich hoffe, Sie können sie bei der Verwendung als Referenz verwenden.

  • Truncate kann nicht über Binärlog zurückgesetzt werden.
  • Truncate löscht alle Daten und wird sehr schnell ausgeführt.
  • Truncate kann nicht auf Tabellen angewendet werden, auf die durch Fremdschlüsseleinschränkungen verwiesen wird.
  • Zum Ausführen von Truncate ist die Drop-Berechtigung erforderlich. Es wird nicht empfohlen, dem Konto die Drop-Berechtigung zu erteilen.
  • Überprüfen und bestätigen Sie unbedingt noch einmal, bevor Sie Truncate ausführen. Am besten sichern Sie die folgenden Tabellendaten vorher.

Oben finden Sie eine ausführliche Erklärung des Herausgebers zur Verwendung von Truncate in MySQL. Ich hoffe, dass sie für alle hilfreich ist. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Truncate-Verwendung in MySQL
  • Detaillierte Erklärung der MySQL Truncate-Verwendung

<<:  CSS realisiert Div vollständig zentriert, ohne Höhe festzulegen

>>:  Lösung für den Konflikt zwischen zwei Registerkartennavigation in HTML

Artikel empfehlen

Beispiele für die Interaktion zwischen MySQL und Python

Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...

js zum Hochladen von Bildern auf den Server

In diesem Artikelbeispiel wird der spezifische Co...

Detailliertes Tutorial zum Ausführen mehrerer Springboot mit Docker

Docker führt mehrere Springboot Erstens: Port-Map...

Implementierung der IP-Adresskonfiguration in Centos7.5

1. Bevor Sie die IP-Adresse konfigurieren, verwen...

Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux

Vorwort In diesem Artikel werden einige Docker-Co...

Einfache und schnelle Einführung in die React-Routing-Entwicklung

Installieren Geben Sie zur Installation den folge...

mysql5.7.21 UTF8-Kodierungsproblem und -Lösung in der Mac-Umgebung

1. Ziel: Ändern Sie den Wert des character_set_se...

js zum Schreiben des Karusselleffekts

In diesem Artikel wird der spezifische Code von j...