在做数据迁移,数据清洗或者写web项目时要将数据替换更新,那么有时要将表做清空处理
常用的清空数据表的SQL语句有如下两种
delete from 表名;
truncate table 表名;
运行测试
我使用的是MySql待测试的表有20000条记录,将其多拷两份以备测试

分别运行两个清空表的SQL语句


从结果可以看出两条语句都可以达到清空表的目的,而两者的区别是:
truncate的效率高于delete
truncate 清除数据后不记录日志,不可以恢复数据,相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表.
delete清除数据后记录日志,可以恢复数据,相当于将表中所有记录一条一条删除
具体选用哪一种方法要根据实际遇到的情况而定,我通常使用的是delete方法,虽然时间较慢,但是较为保险
本文对比了使用DELETE和TRUNCATE两种SQL语句清空表的优劣,指出TRUNCATE效率更高但无法恢复数据,而DELETE则可以记录日志以便数据恢复。
927

被折叠的 条评论
为什么被折叠?



