ELIMINAR
- DELETE es un comando DML.
- La declaración DELETE se ejecuta mediante un bloqueo de fila, cada fila de la tabla está bloqueada para su eliminación.
- Podemos especificar filtros en la cláusula where
- Elimina los datos especificados si existe la condición.
- Eliminar activa un disparador porque la operación se registra individualmente.
- Más lento que truncar porque mantiene registros.
- La reversión es posible.
TRUNCADO
- TRUNCATE es un comando DDL.
- TRUNCATE TABLE siempre bloquea la tabla y la página, pero no cada fila.
- No se puede usar la condición Where.
- Elimina todos los datos.
- TRUNCATE TABLE no puede activar un activador porque la operación no registra eliminaciones de filas individuales.
- Más rápido en cuanto a rendimiento, porque no guarda ningún registro.
- 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