码迷,mamicode.com
首页 > 数据库 > 详细

MySQL——delete 和 truncate 以及 drop 区别

时间:2017-09-15 13:33:05      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:main   data   回滚   创建   view   trigger   定义   区别   事务   

delete 和 truncate 以及 drop 区别

  (个人理解,如有错误,请指出)

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   定义   区别   事务   

原文地址:http://www.cnblogs.com/sun7897/p/7525469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!