mysql清空表中的数据delete和truncate

本文探讨了在数据库中清空表数据时,使用`DELETE`和`TRUNCATE`命令的区别。`DELETE`命令会记录日志并可能在处理大量数据时变得缓慢,而`TRUNCATE`则不写日志,速度更快,且能重置自增主键。在处理百万级别数据时,`TRUNCATE`是更优的选择,但需要注意其不适用于有外键约束的情况。
摘要由CSDN通过智能技术生成

需求

清空一张表中的全部数据

delete

最常见的和容易想到的就是使用 delete 来进行数据的删除

-- 删除全部
delete * from table_name;
-- 删除指定条件
delete * from table_name where id > 100;

这样删除没问题, 但是如果有和多条数据百万级别
那么就会变成很慢的操作

  1. 逐条删除
  2. 删的过程中写 服务器 日志 log
  3. 自增的主键 id 删除后依旧从原来的地方开始, 而不是 从 1 从新开始

truncate

翻译:
truncate --> 删节, 截断

-- 直接清空 这个表中的所有内容
truncate table table_name;
-- table 可以省略
truncate table_name;
  1. truncate 整体删除
  2. 不写服务器 日志 log , 比 delete快的根本原因
  3. 重置 自增主键 id 的起始位置 从 1 从新开始
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值