仓酷云
标题:
MYSQL教程之truncate,delete,drop的异同点
[打印本页]
作者:
萌萌妈妈
时间:
2015-1-16 22:22
标题:
MYSQL教程之truncate,delete,drop的异同点
不管怎么样,市场的结果已经证明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对硬件的较低要求是其最大的优势之一,不过需要注意的是:内存越多越好,因为所有的重要数据存储都在内存中完成。
作者:
兰色精灵
时间:
2015-1-19 09:33
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
作者:
蒙在股里
时间:
2015-1-24 14:23
总感觉自己还是不会SQL
作者:
再现理想
时间:
2015-2-1 16:59
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
作者:
分手快乐
时间:
2015-2-7 10:24
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
作者:
乐观
时间:
2015-2-21 18:56
我个人认为就是孜孜不懈的学习
作者:
精灵巫婆
时间:
2015-3-6 21:05
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
作者:
不帅
时间:
2015-3-13 09:58
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
作者:
小妖女
时间:
2015-3-20 19:25
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2