首页 > 代码库 > MySQL笔记-turncat、drop、delete的区别
MySQL笔记-turncat、drop、delete的区别
TRUNCATE
语法: TRUNCATE TABLE [schema.] table [{DROP | REUSE} STORAGE]
功能: 删除整个表的数据并释放空间
功能: 删除整个表的数据并释放空间
描述:
- 由于Truncate 是DDL 命令,所以执行过程中原数据不放在Rollback Segment 中,不产生回滚数据 ,不产生Redo Log 。
- Truncate , Drop 等DDL命令都是隐含提交的。
- 需要drop的操作权限
- 相当于这样的流程:先drop table 然后 create table。
- 不记录日志,无法恢复
- auto increatment 自增会恢复从头开始自增。
- 执行速度比delete快
DELETE
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[PARTITION (partition_name
,...)] [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
- delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。
- 有where条件删除where条件中所限制的数据;没有where条件则删除所有的数据
- 如果有order by从句,则根据order by的排序顺序依次删除,如果有limit 从句则只删除limit限制的数量
- 执行速度最慢,但是安全性最高
DROP
DROP [TEMPORARY] TABLE [IF EXISTS]tbl_name
[,tbl_name
] ... [RESTRICT | CASCADE]
- 直接删除表结构的文件和数据文件,执行速度最快
MySQL笔记-turncat、drop、delete的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。