Mysql
 sql >> Base de données >  >> RDS >> Mysql

comparaison de tronquer vs supprimer dans mysql/sqlserver

SUPPRIMER

  1. SUPPRIMER est une commande DML.
  2. L'instruction DELETE est exécutée à l'aide d'un verrou de ligne, chaque ligne de la table est verrouillée pour suppression.
  3. Nous pouvons spécifier des filtres dans la clause where
  4. Il supprime les données spécifiées si la condition existe.
  5. La suppression active un déclencheur, car les opérations sont enregistrées individuellement.
  6. Plus lent que tronqué, car il conserve les journaux.
  7. La restauration est possible.

TRUNCATE

  1. TRUNCATE est une commande DDL.
  2. TRUNCATE TABLE verrouille toujours le tableau et la page, mais pas chaque ligne.
  3. Impossible d'utiliser la condition Where.
  4. Il supprime toutes les données.
  5. TRUNCATE TABLE ne peut pas activer un déclencheur car l'opération n'enregistre pas les suppressions de lignes individuelles.
  6. Plus rapide en termes de performances, car il ne conserve aucun journal.
  7. La restauration est possible.


  • DELETE et TRUNCATE peuvent tous deux être annulés lorsqu'ils sont utilisés avec TRANSACTION (TRUNCATE peut être annulé dans SQL Server, mais pas dans MySQL).
  • s'il y a un PK avec incrémentation automatique, tronquer réinitialisera le compteur

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