news 2026/4/15 20:29:40

【作业2】DELETE vs TRUNCATE 区别及大表删除影响

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【作业2】DELETE vs TRUNCATE 区别及大表删除影响

文章目录

    • 【作业2】DELETE vs TRUNCATE 区别及大表删除影响
      • 1. 二者的区别
      • 2. 大表删除表数据,对OS的影响?
        • 使用 DELETE 删除大表的影响:
        • 使用 TRUNCATE 删除大表的影响:
      • 3. 大表数据删除的最佳实践
        • 方案1:分批删除 (推荐)
        • 方案2:创建新表替换
        • 方案3:分区表删除
        • 方案4:优化TRUNCATE
      • 4. 预防措施和监控
        • 执行前检查:
        • 执行中监控:
        • OS层面监控:
      • 5. 特殊情况处理
        • 有外键约束的表:
        • InnoDB优化:
      • 总结对比表

【作业2】DELETE vs TRUNCATE 区别及大表删除影响


1. 二者的区别

特性DELETE FROM table;TRUNCATE table;
SQL 类型DML (数据操作语言)DDL (数据定义语言)
执行方式逐行删除,记录每一行的删除日志直接删除数据页,不记录行级日志
事务支持可回滚 (ROLLBACK)大部分情况下不可回滚 (MariaDB中部分版本支持事务性TRUNCATE)
触发器触发DELETE触发器不触发任何触发器
自增ID不重置自增计数器重置自增计数器为初始值
性能慢 (逐行操作)极快 (直接操作数据页)
锁机制行级锁 (InnoDB) 或 表级锁表级锁
空间释放不立即释放磁盘空间立即释放磁盘空间
WHERE子句支持条件删除不支持,只能全表清空
返回值返回删除的行数返回0 (表示成功)

2. 大表删除表数据,对OS的影响?

使用 DELETE 删除大表的影响:
影响点具体表现
事务日志暴增MariaDB会产生大量Undo/Redo日志,可能导致/var/lib/mysql空间耗尽
锁竞争长时间持有行锁/表锁,阻塞其他查询,可能导致"Waiting for table metadata lock"
CPU/内存高负载逐行删除需要解析、写入日志、更新索引,消耗大量CPU和内存
I/O 压力大大量读写操作:读取数据页→写入Undo日志→更新数据页→写入Redo日志
主从延迟二进制日志包含大量DELETE语句,从库需逐行执行,复制延迟严重
回滚灾难如果中途终止或回滚,回滚时间可能比删除时间更长
使用 TRUNCATE 删除大表的影响:
影响点具体表现
瞬间I/O峰值立即释放大量磁盘空间,文件系统需更新元数据,产生短暂I/O冲击
文件系统碎片释放大量不连续空间,可能导致磁盘碎片增加(对SSD影响较小)
缓存冲击Buffer Pool中的相关数据页立即失效,可能影响后续查询性能
磁盘空间释放延迟在InnoDB中,如果innodb_file_per_table=OFF,空间不会立即归还OS

3. 大表数据删除的最佳实践

方案1:分批删除 (推荐)
-- 使用LIMIT分批删除,减轻事务压力DELETEFROMlarge_tableWHEREconditionLIMIT1000;-- 循环执行,直到删除完成
方案2:创建新表替换
-- 1. 创建新表(保留需要的数据结构)CREATETABLEnew_tableLIKElarge_table;-- 2. 插入需要保留的数据INSERTINTOnew_tableSELECT*FROMlarge_tableWHEREkeep_condition;-- 3. 重命名表(快速切换)RENAMETABLElarge_tableTOold_table,new_tableTOlarge_table;-- 4. 稍后删除旧表DROPTABLEold_table;
方案3:分区表删除
-- 如果表已分区,直接删除分区ALTERTABLElarge_tableDROPPARTITIONp2023;-- 比删除数据快几个数量级
方案4:优化TRUNCATE
-- 1. 降低影响,在低峰期执行SETSESSIONlock_wait_timeout=300;SETSESSIONinnodb_lock_wait_timeout=300;-- 2. 使用TRUNCATETRUNCATETABLElarge_table;

4. 预防措施和监控

执行前检查:
-- 1. 评估表大小SELECTtable_nameAS`表名`,ROUND(((data_length+index_length)/1024/1024),2)AS`大小(MB)`FROMinformation_schema.tablesWHEREtable_schema='your_database'ANDtable_name='large_table';-- 2. 检查锁等待时间SHOWVARIABLESLIKE'innodb_lock_wait_timeout';SHOWVARIABLESLIKE'lock_wait_timeout';
执行中监控:
-- 监控删除进度SHOWPROCESSLIST;SHOWENGINEINNODBSTATUS\G-- 监控空间使用SELECTtable_schemaAS'数据库',table_nameAS'表名',ROUND(((data_length+index_length)/1024/1024),2)AS'当前大小(MB)'FROMinformation_schema.tablesORDERBY(data_length+index_length)DESC;
OS层面监控:
# 监控磁盘空间df-h /var/lib/mysql# 监控I/O压力iostat -x1# 监控内存和CPUtop-u mysqlhtop

5. 特殊情况处理

有外键约束的表:
-- 1. 禁用外键检查SETFOREIGN_KEY_CHECKS=0;-- 2. 执行删除TRUNCATETABLEparent_table;TRUNCATETABLEchild_table;-- 3. 重新启用SETFOREIGN_KEY_CHECKS=1;
InnoDB优化:
-- 调整Buffer Pool,减少刷盘频率SETGLOBALinnodb_flush_log_at_trx_commit=2;SETGLOBALsync_binlog=0;-- 执行删除操作-- ...-- 恢复设置SETGLOBALinnodb_flush_log_at_trx_commit=1;SETGLOBALsync_binlog=1;

总结对比表

场景推荐方法理由
小表清空TRUNCATE快速、干净
大表清空创建新表替换对业务影响最小
条件删除DELETE分批可控、可监控
分区表DROP PARTITION秒级完成
开发环境TRUNCATE快速重置
生产环境分批DELETE或新表替换稳定性优先
紧急清空TRUNCATE最快见效

核心建议:生产环境大表删除,优先考虑分批DELETE新表替换方案,避免使用一次性TRUNCATE或DELETE,除非在明确维护窗口且评估过风险。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/5 14:09:44

“潘金莲”扮演者因戏生情,与武松在一起,今五十三岁却过成这样!

在经典影视的璀璨星河中,98版《水浒传》宛如一颗耀眼的明珠,其中“潘金莲”与“武松”的对手戏更是令人印象深刻。而扮演“潘金莲”的王思懿,竟因戏生情,与“武松”的扮演者丁海峰传出绯闻,这段故事如同投入平静湖面的…

作者头像 李华
网站建设 2026/4/14 8:55:18

学霸同款10个降AIGC网站 千笔AI帮你降AI率

AI降重工具:让论文更自然,让学术更纯粹 在当前的学术环境中,越来越多的研究生开始关注论文的AIGC率和查重率 面对这一挑战,AI降重工具应运而生,它们通过智能算法对文本进行深度处理,不仅能够有效降低AI痕迹…

作者头像 李华
网站建设 2026/4/13 11:13:37

python+vue开发的新农村自建房改造管理系统-pycharm DJANGO FLASK

文章目录 新农村自建房改造管理系统的技术框架后端技术实现要点前端Vue.js核心功能数据库与部署方案系统特色功能 大数据系统开发流程主要运用技术介绍源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式! 新农村自建房改造管理系统…

作者头像 李华
网站建设 2026/4/10 8:56:55

多功能会员系统源码开源可定制,源码全开源可以二开

温馨提示:文末有资源获取方式在数字经济时代,传统商家面临着客户留存难、营销方式单一等挑战。一套成熟的会员卡积分营销系统,能够成为连接商家与消费者的核心纽带。我们为您推荐一款功能强大的会员卡积分收银系统源码商业运营版。该系统专为…

作者头像 李华
网站建设 2026/4/14 20:08:47

硕士论文通关密码:paperzz 文献综述写作,让你一周搞定学术开篇

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 文献综述https://www.paperzz.cc/journalsReviewedhttps://www.paperzz.cc/journalsReviewed 对于每一位硕士研究生而言,文献综述不仅是论文的 “门面”,更是整个研究的逻…

作者头像 李华
网站建设 2026/4/12 18:47:39

计算机毕业设计之springboot超市货品信息管理系统

随着世界经济信息化、全球化的到来和互联网的飞速发展,推动了各行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、动态的、交互友好的、高效的超市货品信息管理系统。当前的信息管理存在工作…

作者头像 李华