eins nach eins DELETE
beseitigt, basierend auf einer angegebenen TRUNCATE
-Klausel (oder alle Zeilen, wenn keine DELETE
Klausel bereitgestellt wird). Dies bedeutet, dass es jede Zeile einzeln verarbeitet und jede Löschung protokolliert. hingegen ist eine DDL -Anweisung (Datendellsprache), die alle WHERE
Zeilen aus einer Tabelle WHERE
gleichzeitig TRUNCATE
entfernt. Es ist ein schnellerer Massenbetrieb, der keine individuellen Zeilendeletionen anbietet. Stellen Sie sich als chirurgisch bestimmte Zeilen vor, während wie das Wisching der Tabelle mit einem einzigen Swipe sauber ist. Entscheidend ist, dass eine bedingte Entfernung ermöglicht, während immer alle Zeilen entfernt. Dies liegt daran, dass DELETE
jede Löschung nicht einzeln protokollieren muss. Die Leistungsverstärkung macht sich besonders in Szenarien bemerkbar, in denen Sie eine große Anzahl von Zeilen oder alle Zeilen aus einer Tabelle entfernen müssen. Zeilen-für-Reihen-Verarbeitung von TRUNCATE
, gepaart mit seinem Protokollierungsaufwand, kann zu erheblichen Leistungsengpassungen führen. Darüber hinaus wird das Transaktionsprotokoll für einen DELETE
-Operation signifikant größer als der für TRUNCATE
, der sich auf die Transaktionsausschussterzeiten und den potenziellen Speicherplatzverbrauch auswirkt. Betrachten Sie ein Szenario, in dem Sie Millionen von Zeilen löschen.
), die gelöschten Zeilen in ihren ursprünglichen Zustand wiederhergestellt werden. Das Transaktionsprotokoll verfolgt die einzelnen Löschungen und ermöglicht ihre Umkehrung. Umgekehrt sind TRUNCATE
Anweisungen typischerweise DELETE
kein Teil der Transaktionen (obwohl Datenbanksysteme möglicherweise Erweiterungen bieten, die dies zulassen). Ein TRUNCATE
-Operation wird normalerweise sofort begangen, und ein DELETE
nach einem DELETE
wird die gelöschten Daten nicht wiederhergestellt. Die Daten werden als unwiderruflich entfernt, sobald der TRUNCATE
Betrieb abgeschlossen ist. Dies liegt daran
eine DDL -Anweisung ist, generiert sie normalerweise keine detaillierten Transaktionsprotokolleinträge für einzelne Zeilen. Daher wird ein DELETE
die Daten nicht wiederhergestellt. Die beste Wette für die Wiederherstellung nach einem ROLLBACK
besteht darin, sich auf Datenbanksicherungen zu verlassen. Wenn Sie kürzlich ein Backup haben, können Sie den Tisch aus dieser Sicherung wiederherstellen. Das Wiederherstellen von einem Transaktionsprotokoll allein ist nach einem
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen SQL -Löschen von Zeilen und Kürzungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!