国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > truncate table与delete区别

truncate table与delete区别

来源:程序员人生   发布时间:2014-11-13 09:09:06 阅读次数:3135次

truncate table需要drop table权限,它是完全清空1张表。
从逻辑上看,truncate table同delete 1样,或是drop table +create table1样。使用truncate table删除全表数据,要比delete要快。使用truncate table清空数据,不能进行回滚,且不受表间外键束缚限制。
truncate是DDL语句,而且delete是DML语句,二者区分以下:
1.truncate 是邮drop table+create table ,比使用delete1行行删除数据要快很多,特别是清空大数据的表。
2.truncate是1种藏匿提交,所以不能进行回滚。
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

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生