MySQL——delete 和 truncate 以及 drop 区别
16lz
2021-01-22
delete 和 truncate 以及 drop 区别
(个人理解,如有错误,请指出)
delete < truncate < drop
删除方式:
truncate 只删除数据、逐条删除
delete 只删除数据、先删除整个表,把那行剔除掉再创建(?)
drop 删除整个表(结构和数据)
空间:
truncate 表和索引所占用的空间会恢复到初始大小
delete 不会减少表或者索引所占的空间。
drop 将表所占的空间全释放掉
应用范围:
truncate 只用于table
delete 可以是table和view
语句属性:
delete DML(data maintain language)数据操纵语言: 用来操作表中数据
truncate和drop DDL(data define language)数据定义语言 : 定义数据库或者表结构
————所以delete有删除记录能回滚,其他不行。
应用:
delete 删除部分数据行采用delete且注意结合where来约束影响范围。回滚段要足够大。
drop 删除表
truncate 保留表而将表中数据删除,于事务无关。如果和事务有关,或想触发trigger,还是用delete。
更多相关文章
- mysql中将多条记录合并成一行数据进行显示
- SQLServer---查询过程中的数据类型转化
- 关于使用框架操作Oracle数据库切换MySQL数据库时,nextval的问题!
- linux ,cron定时任务 备份mysql数据库
- 为什么数据库设计人员不让标识列从最小值开始而不是从1开始?
- 如何优化用于从表复制数据的oracle过程?
- 入门 --ubuntu下面mysql数据库安装以及相关操作
- 使用python抓取csdn博客访问量并保存在sqlite3数据库中
- 世界国家 的数据库sql