Si queremos eliminar todos los registros de una tabla en MySql tenemos dos opciones, la primera es tan solo utilizar nuestra sentencia “DELETE” de siempre solo que sin ningún “WHERE”, haciendo que se borren todos los datos de la tabla:
DELETE FROM tabla
Pero también podemos optar por la alternativa que es mediante la declaración “TRUNCATE TABLE” de la siguiente forma
TRUNCATE TABLE tabla
Para empezar la opción con DELETE devuelve el número de registros que fueron borrados, mientras que TRUNCATE TABLE no devuelve nada.
Por otro lado TRUNCATE lo que hace en realidad es destruir la tabla y volverla a crear y no eliminar cada uno de los registros y puesto que eliminar y crear la tabla es mucho más rápido que eliminar todos los registros.
Otra diferencia importante tiene que ver con la misma característica de TRUNCATE TABLE de destruir y volver a crear la tabla, y es que reinicia todos los valores AUTO_INCREMENT de la tabla, es decir que si vamos en el registro 1340, y usamos TRUNCATE TABLE al insertar un nuevo registro este volvería a ser el 1, mientras que en caso de usar DELETE FROM el AUTO_INCREMENT se conservaría intacto por lo que nuestro nuevo registro sería el número 1341 a pesar de ser el primero.