sql >> Base de Datos >  >> RDS >> Mysql

comparación de truncar vs eliminar en mysql/sqlserver

ELIMINAR

  1. DELETE es un comando DML.
  2. La declaración DELETE se ejecuta mediante un bloqueo de fila, cada fila de la tabla está bloqueada para su eliminación.
  3. Podemos especificar filtros en la cláusula where
  4. Elimina los datos especificados si existe la condición.
  5. Eliminar activa un disparador porque la operación se registra individualmente.
  6. Más lento que truncar porque mantiene registros.
  7. La reversión es posible.

TRUNCADO

  1. TRUNCATE es un comando DDL.
  2. TRUNCATE TABLE siempre bloquea la tabla y la página, pero no cada fila.
  3. No se puede usar la condición Where.
  4. Elimina todos los datos.
  5. TRUNCATE TABLE no puede activar un activador porque la operación no registra eliminaciones de filas individuales.
  6. Más rápido en cuanto a rendimiento, porque no guarda ningún registro.
  7. La reversión es posible.


  • DELETE y TRUNCATE se pueden revertir cuando se usan con TRANSACTION (TRUNCATE se puede revertir en SQL Server, pero no en MySQL).
  • si hay un PK con incremento automático, truncar restablecerá el contador

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