Categories: Mysql数据库

Mysql数据库drop、truncate和delete的区别

今天在做公司项目的时候,产品要求清理数据库,删除试运行期间产生的数据,删就删,那在选择删除的时候是用drop、truncate、还是delete呢?这里就要探究一下三者之间的异同:
相同点:
  • 都可以实现删除数据的功能
不同点:
  1. Truncate是一个DDL命令,而DELETEE是一个DML命令
  2. Truncate不能被rollback,而DELETE是可以被rollback
  3. runcate不能触发数据库里面定义的触发器,而DELETEDELETE可以
  4. Truncate操作的执行速度比DELETE快
  5. Truncate是不可以加条件的,而DELETE可以加条件(where)
  6. DROP是直接从数据目录下删除数据,所以执行速度更快,DROP>TRUNCATE>DELETE, 同时DROP和TRUNCATET都会删除索引文件,而DELETE不会
通过以上的比较,对于数据量小的情况下,三个命令都可以实现,效率影响不大,对于数据较大(一般在百万以上了) ,要选择合适的命令,避免高射炮打蚊子。

2.0
01
Redis学习资源列表汇总
Mysql Like查询优化
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

Clockwise一款AI日历工具

Clockwise是一款创新的…

1天 ago

Leonardo一个视觉创意AI生成平台

Leonardo.ai提供了一…

1天 ago

DupDub一款终极AI内容创作助手

DupDub 是一个一站式内容…

1天 ago

Murf AI是一款尖端的AI声音生成器

Murf AI是一款尖端的AI…

1天 ago