MySQL中清空表和删减表的区别
2021/6/28 2:20:36
本文主要是介绍MySQL中清空表和删减表的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 在Navicat操作清空表中数据时,发现清空表(delete table)和删减表(truncate table)两个选项,这两个选项都是实现清空MySQL表中的数据,那么两者的区别是什么?
2. 区别:
(1)SQL不同:
清空表:DELETE FROM table_name;
删减表:TRUNCATE [TABLE] table_name;
(2)返回值不同:
清空操作,返回删除的行数。
删减操作,返回0。
(3)自增字段处理
清空:不会将自增字段置为1,继续保留最大值。
删减:将字段置为1。
(4)效率比较
清空:扫描全盘,表数据越多删减越慢。
删减:不扫描全盘,效率高,机会与表数据无关。(相当于重新创建表,只保留了表结构,然后删除掉原有表,效率非常高)
(5)日志记录
清空:会记录日志,可恢复。
删减:不记录日志,不可回复。谨慎使用!
(6)触发器影响
清空:相当于执行delete删除语句,会激活触发器。
删减:直接对表操作,不会激活触发器。
3. 总结
- 清空操作:DELETE FROM table_name ; 不会重置自增字段,效率低,有日志记录,会激活触发器。 对于数据量大的表,执行的比较慢。
- 删减操作:TRUNCATE [TABLE] table_name ; 会重置自增字段,效率高,无日志记录,不会激活触发器。 请谨慎使用,一旦执行,数据无法恢复。
来自:https://www.cnblogs.com/better-farther-world2099/articles/14657528.html
这篇关于MySQL中清空表和删减表的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?