Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

comparação de truncar vs excluir no mysql/sqlserver


EXCLUIR

  1. DELETE é um comando DML.
  2. A instrução DELETE é executada usando um bloqueio de linha, cada linha na tabela é bloqueada para exclusão.
  3. Podemos especificar filtros na cláusula where
  4. Ele exclui dados especificados se houver condição.
  5. Excluir ativa um acionador porque a operação é registrada individualmente.
  6. Mais lento que truncar porque mantém registros.
  7. É possível reverter.

TRUNCAR

  1. TRUNCATE é um comando DDL.
  2. TRUNCATE TABLE sempre bloqueia a tabela e a página, mas não cada linha.
  3. Não é possível usar a condição Where.
  4. Remove todos os dados.
  5. TRUNCATE TABLE não pode ativar um gatilho porque a operação não registra exclusões de linhas individuais.
  6. Mais rápido em termos de desempenho, porque não mantém nenhum registro.
  7. É possível reverter.



  • DELETE e TRUNCATE podem ser revertidos quando usados ​​comTRANSACTION (TRUNCATE pode ser revertido no SQL Server, mas não no MySQL).
  • se houver um PK com incremento automático, truncar irá redefinir o contador

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