sql >> Database >  >> RDS >> Mysql

vergelijking van truncate vs delete in mysql/sqlserver

VERWIJDEREN

  1. VERWIJDEREN is een DML-opdracht.
  2. DELETE-instructie wordt uitgevoerd met een rijvergrendeling, elke rij in de tabel is vergrendeld voor verwijdering.
  3. We kunnen filters specificeren in de where-clausule
  4. Het verwijdert gespecificeerde gegevens als er sprake is van een voorwaarde.
  5. Verwijderen activeert een trigger omdat de bewerking afzonderlijk wordt vastgelegd.
  6. Langzamer dan afkappen omdat het logboeken bijhoudt.
  7. Terugdraaien is mogelijk.

AFKNOP

  1. TRUNCATE is een DDL-commando.
  2. TRUNCATE TABLE vergrendelt altijd de tabel en pagina, maar niet elke rij.
  3. Kan Where-voorwaarde niet gebruiken.
  4. Het verwijdert alle gegevens.
  5. TRUNCATE TABLE kan geen trigger activeren omdat de bewerking geen afzonderlijke rijverwijderingen registreert.
  6. Sneller qua prestaties, omdat het geen logboeken bijhoudt.
  7. Terugdraaien is mogelijk.


  • DELETE en TRUNCATE kunnen beide worden teruggedraaid bij gebruik met TRANSACTION (TRUNCATE kan worden teruggedraaid in SQL Server, maar niet in MySQL).
  • als er een PK is met automatische ophoging, zal truncate de teller resetten

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



  1. Sqlite3 - NULL-waarden importeren uit csv

  2. Is een Load DATA zonder bestand (d.w.z. in het geheugen) mogelijk voor MySQL en Java?

  3. Psql COPY met beperking mislukt

  4. Python/Django MySQL Datetime-verwerking en tijdzone