28 mysql sql sql-server
关于mysql/sqlserver即删除/截断的一件事让我头脑发热
哪一个更好更快?
在哪里使用删除?
在哪里使用truncate?
bgs*_*bgs 97
删除
截短
http://beginner-sql-tutorial.com/sql-delete-statement.htm
nav*_*yal 10
最重要的区别是DELETE操作是事务安全的并且已记录,这意味着可以回滚DELETE.TRUNCATE无法在事务内完成,无法回滚.因为没有记录TRUNCATE,所以恢复错误的TRUNCATEd表比从DELETE恢复要大得多.
如果外键约束被破坏,DELETE将失败; TRUNCATE可能不会遵守外键约束(它适用于InnoDB表).DELETE将触发任何ON DELETE触发器; TRUNCATE不会.
截断操作会删除并重新创建表,这比逐个删除行要快得多,特别是对于大型表.
当表设置为空时,需要将自动递增键重置为1.它比DELETE快,因为它删除了所有数据.DELETE将扫描表以生成受影响的行数.
需要根据可选的WHERE子句删除行.需要日志并应用外键约束
| 归档时间: |
|
| 查看次数: |
46914 次 |
| 最近记录: |