Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vergleich von Abschneiden und Löschen in mysql/sqlserver

LÖSCHEN

  1. DELETE ist ein DML-Befehl.
  2. Die DELETE-Anweisung wird mit einer Zeilensperre ausgeführt, jede Zeile in der Tabelle ist zum Löschen gesperrt.
  3. Wir können Filter in der Where-Klausel angeben
  4. Es löscht angegebene Daten, wenn eine Bedingung vorhanden ist.
  5. Löschen aktiviert einen Trigger, da die Vorgänge einzeln protokolliert werden.
  6. Langsamer als truncate, weil Protokolle geführt werden.
  7. Rollback ist möglich.

KÜRZEN

  1. TRUNCATE ist ein DDL-Befehl.
  2. TRUNCATE TABLE sperrt immer die Tabelle und Seite, aber nicht jede Zeile.
  3. Wo-Bedingung kann nicht verwendet werden.
  4. Es entfernt alle Daten.
  5. TRUNCATE TABLE kann keinen Trigger aktivieren, da die Operation keine einzelnen Zeilenlöschungen protokolliert.
  6. Schneller in Bezug auf die Leistung, da keine Protokolle geführt werden.
  7. Rollback ist möglich.


  • DELETE und TRUNCATE können beide rückgängig gemacht werden, wenn sie mit TRANSACTION verwendet werden (TRUNCATE kann in SQL Server rückgängig gemacht werden, aber nicht in MySQL).
  • Wenn es einen PK mit automatischer Erhöhung gibt, wird durch Abschneiden der Zähler zurückgesetzt

http://beginner-sql-tutorial.com/sql-delete-statement .htm