Vorwort
Welche Möglichkeiten gibt es, Daten in MySQL zu löschen? Wir verwenden üblicherweise drei Löschmethoden: Löschen mit den Schlüsselwörtern „delete“, „truncate“ und „drop“. Alle drei können zum Löschen von Daten verwendet werden, jedoch in unterschiedlichen Szenarien. 1. In Bezug auf die Ausführungsgeschwindigkeit löschen > abschneiden >> LÖSCHEN 2. Grundsätzlich 1. LÖSCHEN LÖSCHEN aus TABLE_NAME, wobei xxx 1. DELETE gehört zur Datenbank-DML-Operationssprache . Es löscht nur Daten, nicht aber die Tabellenstruktur. Es durchläuft Transaktionen und löst bei Ausführung einen Trigger aus. 2. In InnoDB löscht DELETE die Daten nicht wirklich. MySQL markiert die gelöschten Daten eigentlich nur als gelöscht. Wenn DELETE die Daten in der Tabelle löscht, wird daher der von der Tabellendatei auf der Festplatte belegte Speicherplatz nicht reduziert und der Speicherplatz wird nicht freigegeben. Es macht die gelöschten Datenzeilen lediglich unsichtbar. Obwohl der Speicherplatz dadurch nicht freigegeben wird, kann er beim nächsten Einfügen von Daten erneut verwendet werden (Wiederverwenden → Überschreiben). 3. Wenn DELETE ausgeführt wird, werden die gelöschten Daten zuerst im Rollback-Segment zwischengespeichert und werden nach dem Festschreiben der Transaktion wirksam. 4. delete from table_name löscht alle Daten in der Tabelle. Für MyISAM wird der Speicherplatz sofort freigegeben, InnoDB gibt jedoch keinen Speicherplatz frei. 5. Beim bedingten Löschen von „delete from table_name where xxx“ geben weder InnoDB noch MyISAM Speicherplatz frei. 6. Verwenden Sie die Optimieren-Tabelle table_name nach dem Löschvorgang, um sofort Speicherplatz freizugeben. Egal ob es InnoDB oder MyISAM ist. Um Speicherplatz freizugeben, führen Sie daher nach dem Löschen den Vorgang zur Tabellenoptimierung aus. Beispiel: Die SQL-Anweisung zum Überprüfen des von einer Tabelle belegten Speicherplatzes lautet wie folgt: (Verwenden Sie M als Anzeigeeinheit, Datenbankname: csjdemo, Tabellenname: demo2) Wählen Sie concat(round(sum(DATA_LENGTH/1024/1024),2),'M') als Tabellengröße aus information_schema.tables wobei table_schema='csjdemo' UND table_name='demo2'; Führen Sie dann die Anweisung zur Speicherplatzoptimierung aus. Nach der Ausführung ändert sich die Tabellengröße: Tabelle optimieren demo2 Wenn man die Größe dieser Tabelle betrachtet, bleibt nur die Größe der Tabellenstruktur übrig. 7. Der Löschvorgang wird zeilenweise ausgeführt, und das Löschvorgangsprotokoll der Zeile wird für Rollback- und Redo-Vorgänge in den Redo- und Undo-Tabellenbereichen aufgezeichnet . Die große Menge der generierten Protokolle belegt auch Speicherplatz . 2. abschneiden Tabelle TABLE_NAME abschneiden 1. Abschneiden: Es gehört zur DDL-Definitionssprache der Datenbank , durchläuft keine Transaktionen, die Originaldaten werden nicht in das Rollback-Segment eingefügt und der Vorgang löst keinen Trigger aus. Es wird sofort nach der Ausführung wirksam und kann nicht abgerufen werden. Es wird sofort nach der Ausführung wirksam und kann nicht abgerufen werden. 2. Durch Abschneiden der Tabelle table_name wird sofort Speicherplatz freigegeben, unabhängig von InnoDB oder MyISAM . „Truncate Table“ ähnelt eigentlich ein wenig „Drop Table and Then Create“, mit dem Unterschied, dass der Vorgang zum Erstellen der Tabelle optimiert wurde, z. B. ist die Tabellenstrukturdatei bereits vorhanden. Die Geschwindigkeit sollte also nahe an der des Drop-Table liegen. 3. Mit Truncate kann eine Tabelle schnell geleert werden. Und setzen Sie den Wert von auto_increment zurück. Bei den unterschiedlichen Typen von Speicher-Engines müssen Sie jedoch Folgendes beachten:
Mit anderen Worten: Die InnoDB-Tabelle selbst kann auto_increment nicht beibehalten. Nach dem Löschen der Tabelle ist auto_increment zwar noch im Speicher gespeichert, geht aber nach dem Neustart verloren und kann nur bei 1 beginnen. Tatsächlich beginnt die automatische Inkrementierung nach dem Neustart mit „SELECT 1+MAX(ai_col) FROM t“. 4. Seien Sie vorsichtig, wenn Sie Truncate verwenden, insbesondere wenn kein Backup vorhanden ist. Wenn Sie versehentlich eine Online-Tabelle löschen, denken Sie daran, sich rechtzeitig an China Civil Aviation zu wenden. Telefonnummer für Ticketbuchungen: 400-806-9553 3. Tropfen Tabelle löschen Tabellenname 1. Drop: gehört zur Datenbank-DDL-Definitionssprache, dasselbe wie Truncate; Es wird sofort nach der Ausführung wirksam und kann nicht abgerufen werden. Es wird sofort nach der Ausführung wirksam und kann nicht abgerufen werden. 2. Durch das Löschen der Tabelle „table_name“ wird sofort Speicherplatz freigegeben, unabhängig davon, ob es sich um InnoDB oder MyISAM handelt. Die Drop-Anweisung löscht die Einschränkungen, Trigger und Indizes, von denen die Tabellenstruktur abhängt. Die gespeicherten Prozeduren/Funktionen, die von der Tabelle abhängen, bleiben erhalten, werden jedoch ungültig. 3. Vorsicht bei der Nutzung von Drop. Wenn du das Formular löschen und weglaufen möchtest, führe den Vorgang bitte erst nach erfolgreicher Ticketbuchung aus! Ticketbuchungshotline: 400-806-9553 Sie können es sich so vorstellen: Bei einem Buch bedeutet Löschen, das Inhaltsverzeichnis herauszureißen, Truncate bedeutet, den Inhalt des Buches herauszureißen und zu verbrennen und Drop bedeutet, das Buch zu verbrennen. Zusammenfassen Dies ist das Ende dieses Artikels über die Unterschiede zwischen Löschen, Abschneiden und Löschen und wie man diese auswählt. Weitere Informationen zu den Unterschieden und Auswahlmöglichkeiten zwischen Löschen, Abschneiden und Löschen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder stöbern Sie weiter in den verwandten Artikeln unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Lösung für das Timeout-Problem der SNMP4J-Serververbindung
>>: UDP DUP-Timeout UPD-Portstatus-Erkennungscodebeispiel
Kürzlich wurde bei einem Online-Sicherheitsscan e...
Inhaltsverzeichnis Über Kubernetes Grundlegende U...
Das Installationstutorial der komprimierten Versi...
Inhaltsverzeichnis Vorwort 1. Grundkenntnisse der...
Inhaltsverzeichnis Einführung Herunterladen und i...
Grammatik Hintergrund: linearer Farbverlauf (Rich...
In vielen Fällen wird die Schaltfläche „Senden“ du...
Alle Websites, ob offiziell, E-Commerce, soziale ...
Inhaltsverzeichnis Portale Fehlergrenzenbehandlun...
Inhaltsverzeichnis Was ist wartbarer Code? Code-K...
Serverplatzierung Es wird empfohlen, Cloud-Server...
Vorschau: Code: Seitenabschnitte: <Vorlage>...
Vorwort In der Vergangenheit habe ich die Python-...
1. Einleitung Ich möchte Selenium verwenden, um D...
Offizielle Website: http://code.google.com/p/zen-c...