关于mysql删除表

1. delete from 表名

最熟悉删除方法,如:delete from course,这会删除course中的所有记录。

表结构不会删除,空间也不会释放,如果是主键自增的话,再次插入数据时,id不会从1开始,而是基于删掉之前的最大id+1。

可以通过事务实现回滚,恢复数据。

2. truncate 表名

一样会清空表中的数据,也不删除表结构。会释放空间,id会从1开始(如果设置了自增)。

3. drop 表名

把整张表删除,数据,结构都删掉。

delete和truncate的区别:

 1.事务和撤销:delete受事务管理,可用rollback回滚撤销;truncate则不能。

 2.效率:不论是执行删除的效率,还是删除过后操作标的效率,truncate都高于delete。truncate不论表的大小,都很快;delete是逐行删除,所以执行比较慢,而且数据越多,执行越慢。

               truncate后,表和表的索引的大小重置,delete不能,delete过后的表操作起来比truncate慢。

猜你喜欢

转载自www.cnblogs.com/tiny-me/p/11772988.html