truncate、delete都是删除表中的数据。truncate直接删除全部的数据,delete可以加上where条件删除部分数据。truncate效率高,直接释放多余的资源,执行后数据不可恢复,delete效率低,不释放资源,短时间内可恢复删除的记录。
drop是表数据和表定义一起都删了。
简单来说,如果是对于 TableA 来说
1、drop table TableA ,删除表,然后你用 select * from TableA 已经提示查询出错了,表不存在
2、truncate table TableA 清空表中的数据,不能加条件,记住是全清。这个速度会比较快, 而且并不产生任何日志 ,使用 select * from TableA 可以执行,但是表里面一条数据都没有
3、delete from TableA 可以根据需要的条件删除数据,但是,如果一次删除大数据量的数据,比如删除1KW条,可能数据库会卡死╮(╯_╰)╭
drop 删除整个表结构和里面的数据
truncate和delete只能删除表中的数据,区别如下:
truncate删除的数据不会产生日志记录
delete删除的数据会产生日志记录