DEV Community

Cover image for [shorts] Saiba a diferença entre DELETE e TRUNCATE - Banco de Dados
Iago Frota
Iago Frota

Posted on • Originally published at iagofrota.com.br

[shorts] Saiba a diferença entre DELETE e TRUNCATE - Banco de Dados

Esses dias bateu a curiosidade de saber a diferença entre os comando SQL TRUCANTE e DELETE. Apesar de pequena a primeiro momento, encontrei e entendi a explicação para utilizar um ou outro dependendo da situação.

Borá lá ( ͡👁️ ͜ʖ ͡👁️)

Comparativo entre DELETE e TRUNCATE

Comparação DELETE TRUNCATE
Tipo DML (Data Manipulation Language) DLL (Data Definition Language)
WHERE Pode ser utilizado a clausula WHERE para especificar as tuplas ( ou linhas, registros, ...) Não tem a opção de usar a clausula WHERE e irá apagar todas as tuplas
locks Será dado lock para cada linha que for ser excluída (requer mais recursos) Será dado lock somente na data page (requer menos recursos)
Velocidade É mais lenta devido fazer operações linha a linha e fazer muito uso de log É mais rápido por registrar apenas o data page e fazer menos uso do log
Reverter É possível dar ROLLBACK e desfazer a operação de exclusão Não é possível reverter a operação de exclusão

TRUNCATE é mais eficiente e performático para excluir tuplas sem especificar um filtro (cláusula WHERE)

DELETE é mais lento, porém consigo dar ROLLBACK e reverter a operação

TRUNCATE vs DELETE

Conclusão

A minha intenção foi mostrar o comparativo entre os comandos e dar uma maior compressão dos motivos de se utilizar um ou outro. Espero que eu tenha conseguido clarear essa diferença.

Top comments (0)