Implementierung der MySQL-Tabellenlöschoperation (Unterschiede zwischen Löschen, Abschneiden und Löschen)

Implementierung der MySQL-Tabellenlöschoperation (Unterschiede zwischen Löschen, Abschneiden und Löschen)

In diesem Artikel werden hauptsächlich die Unterschiede zwischen drei Vorgängen zum Löschen von Tabellen in MySQL erläutert: der Delete-Anweisung, der Truncate-Anweisung und der Drop-Anweisung:

Einführung

löschen

1. Löschen Sie die Daten der gesamten Tabelle:

aus Tabellenname löschen;

2. Löschen Sie einige Daten und fügen Sie eine Where-Klausel hinzu:

Löschen aus Tabellenname, wobei ...;

3. Beschreibung

1) Es gehört zur DML-Sprache. Jedes Mal, wenn eine Zeile gelöscht wird, wird für jede gelöschte Zeile ein Eintrag im Transaktionsprotokoll aufgezeichnet. Ein Rollback wird generiert und wird erst wirksam, nachdem die Transaktion festgeschrieben wurde. Wenn ein entsprechender Trigger vorhanden ist, wird dieser während der Ausführung ausgelöst. Wenn eine Tabelle mit einer großen Datenmenge gelöscht wird, ist die Geschwindigkeit sehr langsam.
2) Löschen Sie die Daten in der Tabelle, ohne die Tabellenstruktur (Definition) zu löschen und den Speicherplatz freizugeben.

kürzen

1. Sie können nur die Tabelle bearbeiten und alle Daten in der Tabelle löschen. Die Funktion ist dieselbe wie bei der Löschanweisung ohne die Where-Klausel:

Tabelle Tabellenname abschneiden;

2. Beschreibung

1) Standardmäßig löscht Truncate Daten, indem es die zum Speichern der Tabellendaten verwendeten Datenseiten freigibt, und zeichnet die Freigabe der Seiten nur im Transaktionsprotokoll auf. Daher werden weniger System- und Transaktionsprotokollressourcen verwendet und der Speicher kann wiederverwendet werden. Durch Truncate wird die Obergrenze zurückgesetzt (zurück zum Anfang).
2) Truncate ist eine DDL-Sprache. Der Vorgang wird sofort wirksam und automatisch festgeschrieben. Die Originaldaten werden nicht in das Rollback-Segment eingefügt und können nicht zurückgesetzt werden. Der Vorgang löst keinen Trigger aus.
3) Löschen Sie den Inhalt und geben Sie Speicherplatz frei, aber löschen Sie nicht die Tabellenstruktur (Definition).

fallen

1. Die Drop-Anweisung löscht die Tabellenstruktur sowie die abhängigen Einschränkungen, Trigger und Indizes.

Tabelle Tabellenname löschen;

2. Hinweis 1) Nach dem Löschen bleiben die von der Tabelle abhängigen gespeicherten Prozeduren/Funktionen erhalten, werden jedoch ungültig.
2) Drop gehört auch zur DDL-Sprache, die sofort ausgeführt wird und die schnellste Ausführungsgeschwindigkeit hat. 3) Löschen Sie Inhalt und Definition, um Speicherplatz freizugeben.

Der Unterschied

1. Von Tabellen und Indizes belegter Speicherplatz:
Wenn eine Tabelle gekürzt wird, wird der von der Tabelle und den Indizes belegte Speicherplatz auf die ursprüngliche Größe zurückgesetzt.
DELETE-Operationen reduzieren nicht den von Tabellen oder Indizes belegten Speicherplatz.
Die DROP-Anweisung gibt den gesamten von der Tabelle belegten Speicherplatz frei.

2. Anwendungsbereich:
TRUNCATE kann nur auf Tabellen ausgeführt werden;
DELETE kann eine Tabelle oder eine Ansicht sein.

3. Ausführungsgeschwindigkeit: drop > truncate > delete

4. Nach dem Löschen einer leeren Tabelle bleibt mit „delete from“ eine leere Seite erhalten, und mit „truncate“ bleiben keine Seiten in der Tabelle übrig.

5. Der Vorgang der Ausführung der DELETE-Anweisung besteht darin, jedes Mal eine Zeile aus der Tabelle zu löschen und gleichzeitig den Löschvorgang der Zeile als Transaktionsdatensatz im Protokoll für den Rollback-Vorgang zu speichern.

TRUNCATE TABLE löscht alle Daten auf einmal aus der Tabelle, ohne einzelne Löschvorgänge zu protokollieren. Gelöschte Zeilen können nicht wiederhergestellt werden. Und die mit der Tabelle verbundenen Löschauslöser werden während des Löschvorgangs nicht aktiviert. Schnelle Ausführungsgeschwindigkeit.

6. Wenn eine DELETE-Anweisung mit einer Zeilensperre ausgeführt wird, wird jede Zeile in der Tabelle zum Löschen gesperrt. truncate sperrt immer Tabellen und Seiten, nicht einzelne Zeilen.

7. Wenn es eine durch Identität generierte ID-Spalte mit automatischer Inkrementierung gibt, wird sie nach dem Löschen immer noch von der letzten Zahl an erhöht, d. h. der Seed bleibt unverändert.

Nach dem Löschen mit Truncate wird der Seed auf den Anfangswert zurückgesetzt.

Zusammenfassen

1. Die Löschanweisung kann die Where-Klausel verwenden, um eine teilweise Löschung zu erreichen, Truncate hingegen nicht. Dadurch werden alle Daten in der Tabelle gelöscht. Bei der Verwendung können Sie entsprechend Ihren Anforderungen wählen.
2. Wenn Sie alle Daten aus der Tabelle löschen möchten, verwenden Sie nicht „delete“, sondern die Anweisung „truncate“, da diese schneller ausgeführt wird. Die Truncate-Anweisung löscht tatsächlich die ursprüngliche Tabelle und erstellt dann eine neue Tabelle.
3. Wenn kein Backup vorhanden ist, verwenden Sie Drop und Truncate mit Vorsicht. Um die Tabellenstruktur zu löschen, verwenden Sie „drop“.
4. Für Tabellen, auf die durch FOREIGN KEY-Einschränkungen verwiesen wird, kann TRUNCATE TABLE nicht verwendet werden. Stattdessen sollte eine DELETE-Anweisung ohne WHERE-Klausel verwendet werden. Da TRUNCATE TABLE nicht protokolliert wird, kann es keine Trigger aktivieren.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des Unterschieds zwischen DROP, TRUNCATE und DELETE in MySQL. Implementierung von MySQL von Grund auf
  • Verwendung von Drop-, Truncate- und Delete-Anweisungen in SQL Server
  • Der Unterschied zwischen Drop, Truncate und Delete
  • Vergleich der Ähnlichkeiten und Unterschiede zwischen Drop-, Delete- und Truncate-Anweisungen in der Datenbank (mit Beispielen)
  • Detaillierte Erklärung der Ähnlichkeiten und Unterschiede zwischen Drop, Delete und Truncate in SQL
  • Eine kurze Analyse verschiedener Methoden zum Löschen von Tabellen (Löschen, Löschen, Abschneiden)
  • Detaillierte Analyse der Unterschiede zwischen Drop, Truncate und Delete in MySQL

<<:  Detaillierte Erklärung von JavaScript zur Überwachung von Routenänderungen

>>:  So konfigurieren Sie den Tomcat-Server für Eclipse und IDEA

Artikel empfehlen

Prinzip und Anwendungsbeispiele des URL-Umschreibmechanismus von Nginx

Durch das Umschreiben der URL lässt sich die bevo...

SQL GROUP BY ausführliche Erklärung und einfaches Beispiel

Die GROUP BY-Anweisung wird in Verbindung mit der...

Eine kurze Erläuterung der Syntax der VUE-Uni-App-Vorlage

1.v-bind (Abkürzung:) Um in Daten definierte Date...

Drei Strategien zum Umschreiben von MySQL-Abfrageanweisungen

Inhaltsverzeichnis Komplexe Abfrage und schrittwe...

JavaScript-Timer zum nahtlosen Scrollen von Bildern

In diesem Artikel wird der spezifische JavaScript...

MySql-Anmeldekennwort vergessen und Lösung für vergessenes Kennwort

Methode 1: MySQL bietet einen Befehlszeilenparame...

Zwei Möglichkeiten zum Erstellen von SSH-Server-Aliasen in Linux

Vorwort Wenn Sie häufig über SSH auf viele versch...

Zusammenfassung der MySQL-Datenbanknutzungsspezifikationen

Einführung: Ich glaube, dass jeder einige Dokumen...

XHTML-Tutorial für den Einstieg: Häufig verwendete XHTML-Tags

<br />Genau wie ein Artikel sollten unsere W...

Javascript verwendet das Integritätsattribut zur Sicherheitsüberprüfung

Inhaltsverzeichnis 1. Dateien mit Skript-Tags imp...

Was tun, wenn der von Docker Run gestartete Container hängt und Daten verliert?

Szenariobeschreibung In einem bestimmten System w...

Ändern des Standard-Bildlaufleistenstils im Front-End-Projekt (Zusammenfassung)

Ich habe viele Projekte geschrieben, bei denen de...

Einführung in die Bereitstellung des Selenium-Crawler-Programms unter Linux

Inhaltsverzeichnis Vorwort 1. Was ist Selen? 2. N...