当前位置: 首页 > news >正文

【SQL】delete 与 truncate 命令的区别

区别

truncatedelete
属于 DDL(数据定义语言) 范畴属于 DML(数据操作语言) 范畴
删除表数据,不能删除视图数据删除表数据,删除视图数据
只可以梭哈删除通过 where 进行选择性删除
不涉及事务处理删除表中数据涉及事务处理
效率高、但无法撤销效率低,涉及事务考虑的就多
不能删除 foreign key 约束引用的表按照一定的先后顺序可以删除相关表中的数据
是删除表再创建是逐条删除
重置auto_increment的值不会重置auto_increment的值
不知道删除了几条delete知道
当被用于带分区的表时,truncate 会保留分区

写法

delete from students where age < 10
delete from students;truncate table students;

使用场景

1、业务删除数据时、且数据量、性能可控的情况下,可以考虑使用 delete from xxx where 业务条件。
2、需要考虑事务提交、撤销的管理机制时,可以使用 delete
3、当需要删除大批量数据时,同时要求速度快,效率高并且无需撤销时,可以使用 truncate

4、在企业级开发中,实际上都是进行逻辑删除(将数据进行删除标识处理)、而并不进行物理上的删除
5、在实际企业开发、维护过程中,不管使用 delete 还是 truncate 命令前,都要考虑数据的备份

参考

【SQL】delete 与 truncate 命令的区别

http://www.lryc.cn/news/278071.html

相关文章:

  • 【ITK库学习】使用itk库进行图像分割(四):水平集分割
  • Kali Linux——aircrack-ng无线教程
  • 15.vdo管理
  • 安全漏洞周报(2024.01.01-2023.01.08)
  • msckf-vio 跑Euroc数据集,并用evo进行评估
  • 大模型LLM在 Text2SQL 上的应用实践
  • 数据库:园林题库软件(《城市绿地设计规范》答题卷一 )
  • MySQL之视图外连接、内连接和子查询的使用
  • MoE模型性能还能更上一层楼?一次QLoRA微调实践
  • Java线程学习笔记
  • 平面光波导_三层均匀平面光波导_射线分析法
  • IPV6学习记录
  • 使用proteus进行主从JK触发器仿真失败原因的分析
  • Golang基础入门及Gin入门教程(2024完整版)
  • 202312 青少年软件编程(C/C++)等级考试试卷(四级)电子学会真题
  • leetcode-合并两个有序数组
  • 网站怎么做google搜索引擎优化?
  • TDengine 签约西电电力
  • 赛门铁克OV代码签名证书一年多少钱?
  • Dockerfile详解
  • 零基础小白如何自学sql?
  • 【刷题笔记2】
  • Kafka之集群搭建
  • Linux备忘手册
  • Qt中QGraphicsView总体架构学习
  • STL-list的使用简介
  • MySQL:索引失效场景总结
  • LNMP平台对接redis服务
  • 5G之味,在烟火长沙
  • 【MYSQL】MYSQL 的学习教程(十一)之 MySQL 不同隔离级别,都使用了哪些锁