|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不管怎么样,市场的结果已经证明MySQL具有性价比高、灵活、MySQL学习教程广为使用和具有良好支持的特点。truncate,delete,drop的异同点
申明:本文摘自oracle手艺用户会商组
truncate,delete,drop的异同点
注重:这里说的delete是指不带where子句的delete语句
不异点:truncate和不带where子句的delete,和drop城市删除表内的数据
分歧点:
1.truncate和delete只删除数据不删除表的布局(界说)
drop语句将删除表的布局被依附的束缚(constrain),触发器(trigger),索引(index);依附于该表的存储历程/函数将保存,可是变成invalid形态.
2.delete语句是dml,这个操纵会放到rollbacksegement中,事件提交以后才失效;假如有响应的trigger,实行的时分将被触发.
truncate,drop是ddl,操纵当即失效,原数据不放到rollbacksegment中,不克不及回滚.操纵不触发trigger.
3.delete语句不影响表所占用的extent,高水线(highwatermark)坚持原地位不动
明显drop语句将表所占用的空间全体开释
truncate语句缺省情形下将空间开释到minextents个extent,除非利用reusestorage;truncate会将高水线复位(回到最入手下手).
4.速率,一样平常来讲:drop>truncate>delete
5.平安性:当心利用drop和truncate,特别没有备份的时分.不然哭都来不及
利用上,想删除部分数据行用delete,注重带上where子句.回滚段要充足年夜.
想删除表,固然用drop
想保存表而将一切数据删除.假如和事件有关,用truncate便可.假如和事件有关,大概想触发trigger,仍是用delete.
假如是收拾表外部的碎片,能够用truncate跟上reusestroage,再从头导进/拔出数据
MySQL对硬件的较低要求是其最大的优势之一,不过需要注意的是:内存越多越好,因为所有的重要数据存储都在内存中完成。 |
|