sql >> Databasteknik >  >> RDS >> Mysql

jämförelse av truncate vs delete i mysql/sqlserver

RADERA

  1. DELETE är ett DML-kommando.
  2. DELETE-satsen körs med ett radlås, varje rad i tabellen är låst för radering.
  3. Vi kan ange filter i where-satsen
  4. Den raderar specificerad data om villkoret finns.
  5. Ta bort aktiverar en utlösare eftersom operationen loggas individuellt.
  6. Långsammare än att trunkera eftersom den håller loggar.
  7. Återställning är möjlig.

TRUNCATE

  1. TRUNCATE är ett DDL-kommando.
  2. TRUNCATE TABLE låser alltid tabellen och sidan men inte varje rad.
  3. Kan inte använda Where Condition.
  4. Den tar bort all data.
  5. TRUNCATE TABLE kan inte aktivera en utlösare eftersom operationen inte loggar borttagningar av enskilda rader.
  6. Snabbare prestandamässigt, eftersom den inte för några loggar.
  7. Återställning är möjlig.


  • DELETE och TRUNCATE kan båda återställas när de används med TRANSACTION (TRUNCATE kan återställas i SQL Server, men inte i MySQL).
  • om det finns en PK med automatisk ökning, trunkering kommer att återställa räknaren

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



  1. Är xmlparserv2 från com.oracle.jdbc:ojdbc8 (v12.2.0.1) helt plötsligt korrupt?

  2. SQL Cross Join

  3. Hur kan jag ändra databasnamnet i AWS RDS för Postgresql?

  4. När ska man använda MyISAM och InnoDB?