Truncate or Delete table

本文探讨了MySQL中DELETE与TRUNCATE命令的区别,包括它们在SQL语言分类、精细化删除、返回值和自增主键重置方面的不同。DELETE属于DML,可恢复,支持where条件,而TRUNCATE是DDL,无法恢复,不支持条件过滤。TRUNCATE在执行效率上更高,但会重置自增主键。在实际操作中,建议在业务低峰期使用TRUNCATE清理表数据。
摘要由CSDN通过智能技术生成

背景

最近在准备双12大促压测,为了更好的支持压测加之DB容量告急,所以准备清理一波影子表数据。

清理表数据的方式有两种:

  • DELETE FROM table_name;
  • TRUNCATE TABLE table_name;
    那这两种方式有什么区别,适用的场景又是什么?

不同点

这里将使用两张测试表来验证结果:
table1: distinct_test
在这里插入图片描述
table2: decimal_test
在这里插入图片描述

SQL语言分类

SQL四种语言:
https://www.cnblogs.com/henryhappier/archive/2010/07/05/1771295.html

delete 属于DML语言,会写服务器日志,可以恢复
truncate 属于DDL语言,不会写服务器日志,无法恢复

精细化程度

delete 可以精细化删除,支持 where 条件过滤
truncate 属于粗暴型删除,无法按条件过滤

返回值

d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值