MySQL数据库中Drop/Truncate/Delete的区别

本文深入解析了SQL中Delete、Truncate和Drop三种操作的区别,包括它们的适用场景、执行效率及对数据库的影响。Delete适用于条件删除少量记录;Truncate则用于快速清空大量数据;而Drop则针对数据库对象的删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Delete:删除数据库记录

①.数据操作语言(DML);

②.在事务控制里,DML语句要么Commit,要么Rollback;

③.删除大量记录速度慢,只删除数据而不回收/释放高水位线(High Water Mark);
//高水位线用于标识已使用过的数据块与未使用的数据块二者间交界,扫描表数据的时候,高水位线以下的所有数据块都必须被扫描

④.可以带条件删除;

注意:如果只是删除少量数据记录,可以使用这种方式!

Truncate:删除所有的数据记录

①.数据定义语言(DDL);

②.不在事务控制里,DDL语句执行之前会提交前面所有未提交的事务;

③.清理大量数据时速度快,回收/释放高水位线(High Water Mark);
//清理大量数据之前,可以先将不需要删除那一小部分数据导出来,然后再清除数据表所有的数据库记录,然后再把之前导出的数据重新导入到数据表中

④.不能带条件删除;

注意:如果要删除大量数据记录,可以使用这种方式!

Drop:删除数据库对象

①.数据定义语言(DDL);

②.数据库对象包括库,表,用户等;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值