背景
最近在准备双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