>  기사  >  데이터 베이스  >  truncatetable与delete区别

truncatetable与delete区别

WBOY
WBOY원래의
2016-06-07 16:06:383745검색

truncate table需要drop table权限,它是完全清空一张表。 从逻辑上看,truncate table同delete 一样,或是drop table +create table一样。使用truncate table删除全表数据,要比delete要快。使用truncate table清空数据,不能进行回滚,且不受表间外键约束

truncate table需要drop table权限,它是完全清空一张表。 从逻辑上看,truncate table同delete 一样,或是drop table +create table一样。使用truncate table删除全表数据,要比delete要快。使用truncate table清空数据,不能进行回滚,且不受表间外键约束限制。 truncate是DDL语句,而且delete是DML语句,两者区别如下: 1.truncate 是邮drop table+create table ,比使用delete一行行删除数据要快得多,特别是清空大数据的表。 2.truncate是一种隐匿提交,所以不能进行回滚。 3.若当前表有外键约束,truncate table 可以清空表中的所有数据,不受外键约束限制。 4.使用truncate table将自增ID置零,delete则不会。 5.在使用分区表时,截断表保存分区;也就是说,数据和索引文件删除并重新创建,在分区定义(.par)文件不受影响。 6.TRUNCATE TABLE语句不调用删除触发器。

参考:

http://dev.mysql.com/doc/refman/5.7/en/truncate-table.html http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb-ddl-operations.html
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.