truncate 与 delete 使用上的区别

truncate只能一下子清空表 而不可以选择性删除 (序号会重头开始):truncate (表名)

delete 可以选择性删除,也可以一次删除全部,但是速度不及truncate

选择性删除:delete from (table) where id = 1;

全删:delete from (table);


ps1:

drop 是删除整个表(毁灭性),truncate和delete会保留表结构。



ps2:

truncate你可以理解为ddl,
delete是dml。
ddl和dml的定义我不多说了。
truncate删数就跟直接格式化硬盘类似,不管有多少数据,我就直接删除,跟drop表一样,无非就是空表留下了。速度不用提,快的很!
delete删除是事务性的一条条删,要记录各种日志,以防你反悔回滚!
因此删一条,记录一条,慢死!
但是,并不是那个快就胡乱用,如果你平时总是需要整表删,那么你用哪个清楚了吧嘿嘿
delete往往用在事务性操作里面,比如删除一条多条数据,如果你用delete删除整表,实在浪费资源,而且对oracle来说,delete不会降低高水位,因此删的次数多了表操作会变慢!
这是讲删除整表时的操作,记住凡事都有两面性!truncate删除不可恢复!delete还可以恢复!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值