想快速清空MySQL表数据又怕选错命令?本文对比truncate、delete和drop,详解truncate如何高效清空表数据且不可恢复,助你精准操作数据库,避免数据灾难
目录
- 一、MySQL清空表数据命令:truncate
- 二、MySQL清空数据表内容:delete
- 三、MySQL删除表命令:drop
- 总结
一、MySQL清空表数据命令:truncate
truncate table 表名;
说明:
- truncate的效率高于delete。
- truncate 清除数据后不记录日志,不可以恢复数据,相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
- truncate删除数据后是不可以进行rollback操作,语句不能与where一起使用。
- truncate 不写服务器 log,速度快。
二、MySQL清空数据表内容:delete
delete from 表名 where 条件; delete from 表名;
说明:
- delete清除数据后记录日志,可以恢复数据,相当于将表中所有记录一条一条删除。
- delete可以删除一行,也可以删除多行。
- delete 删除以后,identity (标识列、自增字段)依旧是接着被删除的最近的那一条记录ID加1后进行记录。如果只需删除表中的部分记录,只能使用 DELETE语句配合 where条件
三、MySQL删除表命令:drop
drop table 表名;
说明:
- drop不光清除表数据还要删除表结构,释放空间。
- 删除之后,依赖于该表的存储过程/函数将保留,但是变为invalid状态。
- drop删除表后是不可以进行rollback操作。
总结
- 当你仍要保留该表,但要删除所有数据表记录时, 用 truncate。
- 当你要删除部分记录或者有可能会后悔的话, 用 delete。
- 当你不再需要该表时, 用 drop。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持北冥有鱼【www.ufcn.cn】。
您可能感兴趣的文章:
- MySQL高效安全地清空多张表的数据的方法
- MySQL删除表数据、清空表的实现过程
- MySQL删除表数据、清空表命令详解(truncate、drop、delete区别)
- MySQL清空所有表的数据方法示例
- Mysql清空表数据库命令truncate和delete详解