每日一道面试题
delete , drop ,truncate 的区别
- delete
delete 可以加where关键字可以删除指定的数据,如果不加where 可以删除表中所有数据
delete 只删除表中的数据,不删除表结构,也不释放空间
delete 不会重置自增值
delete 使用后需要使用 optimize table table_name 整理碎片空间来释放空间 - drop
drop 删除数据的同时删除表结构。同时释放表空间。删除效率最高。
- truncate
truncat 类似于drop table后再create table ,删除效率高,不支持回滚,释放表空间到到初始大小
truncat 会重置自增值
truncat 不能用于存在外键约束引用的表