时间:2021-07-01 10:21:17 帮助过:10人阅读
(个人理解,如有错误,请指出)
delete < truncate < drop
删除方式:
truncate 只删除数据、逐条删除
delete 只删除数据、先删除整个表,把那行剔除掉再创建(?)
drop 删除整个表(结构和数据)
空间:
truncate 表和索引所占用的空间会恢复到初始大小
delete 不会减少表或者索引所占的空间。
drop 将表所占的空间全释放掉
应用范围:
truncate 只用于table
delete 可以是table和view
语句属性:
delete DML(data maintain language)数据操纵语言: 用来操作表中数据
truncate和drop DDL(data define language)数据定义语言 : 定义数据库或者表结构
————所以delete有删除记录能回滚,其他不行。
应用:
delete 删除部分数据行采用delete且注意结合where来约束影响范围。回滚段要足够大。
drop 删除表
truncate 保留表而将表中数据删除,于事务无关。如果和事务有关,或想触发trigger,还是用delete。
MySQL——delete 和 truncate 以及 drop 区别
标签:main data 回滚 创建 view trigger 定义 区别 事务