SQL-truncate && delete && drop 的区别
2015-04-02 10:16
543 查看
有些人在删除表的所有记录的时候,喜欢这样来——不给DELETE 语句提供WHERE 子句,表中的所有记录都将被删除。但这种方法是不可取的,正确的应该使用
TRUNCATE TABLE tb_name
为什么要用TRUNCATE TABLE 语句代替DELETE语句?
因为:虽然TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE,DELETE,DROP放在一起比较:
TRUNCATE TABLE:删除内容、释放空间但不删除定义。
DELETE TABLE:删除内容不删除定义,不释放空间。
DROP TABLE:删除内容和定义,释放空间。
truncate删除表比较快,但删除的数据不能恢复,只能删除表中的所有数据
而delete删除比truncate慢,删除的数据可以恢复,后面可以跟where条件删除某些指定记录。
TRUNCATE TABLE tb_name
为什么要用TRUNCATE TABLE 语句代替DELETE语句?
因为:虽然TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE,DELETE,DROP放在一起比较:
TRUNCATE TABLE:删除内容、释放空间但不删除定义。
DELETE TABLE:删除内容不删除定义,不释放空间。
DROP TABLE:删除内容和定义,释放空间。
truncate删除表比较快,但删除的数据不能恢复,只能删除表中的所有数据
而delete删除比truncate慢,删除的数据可以恢复,后面可以跟where条件删除某些指定记录。
相关文章推荐
- sql中drop、truncate与delete的区别
- sql中delete,drop ,truncate都代表删除,但3者又有一些区别
- sql之truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- sql中drop、truncate和delete的区别
- SQL truncate 、delete与drop区别
- sql中drop、truncate和delete的区别
- SQL truncate 、delete与drop区别
- SQL 中 Delete、Truncate、Drop区别
- sql中drop、truncate和delete的区别
- SQL truncate 、delete与drop区别
- SQL中truncate、delete与drop区别
- sql中drop、truncate和delete的区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- sql 删除表数据truncate delete drop的区别