MySQL笔记-turncatdropdelete的区别

Posted ymkfnuiwgij

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL笔记-turncatdropdelete的区别相关的知识,希望对你有一定的参考价值。

TRUNCATE
语法: TRUNCATE TABLE [schema.] table [{DROP | REUSE} STORAGE]
功能: 删除整个表的数据并释放空间
 
描述:
  1. 由于Truncate 是DDL 命令,所以执行过程中原数据不放在Rollback Segment 中,不产生回滚数据 ,不产生Redo Log 。
  2. Truncate , Drop 等DDL命令都是隐含提交的。
  3. 需要drop的操作权限
  4. 相当于这样的流程:先drop table 然后 create table。
  5. 不记录日志,无法恢复
  6. auto increatment 自增会恢复从头开始自增。
  7. 执行速度比delete快
 
 
DELETE 
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [PARTITION (partition_name,...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]
  1. delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。
  2. 有where条件删除where条件中所限制的数据;没有where条件则删除所有的数据
  3. 如果有order by从句,则根据order by的排序顺序依次删除,如果有limit 从句则只删除limit限制的数量
  4. 执行速度最慢,但是安全性最高
 
DROP
DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]
  1. 直接删除表结构的文件和数据文件,执行速度最快

以上是关于MySQL笔记-turncatdropdelete的区别的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习笔记五

MySQL 笔记

MySQL学习笔记六

MySQL学习笔记之六:MySQL日志

mysql 优化笔记

Mysql高性能优化笔记(含578页笔记PDF文档),收藏了