zoukankan      html  css  js  c++  java
  • 删除表数据drop、truncate和delete的解释

    老大------drop

    出没场合:drop table  tb_name       --tb_name表示数据表的名字

    能力:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表(项目一般不会用)

    清空并删除一张表,释放其空间

    老二-----truncate

    出没场合:truncate table tb_name

    能力:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,他比较温柔。

    坑点:

      不记录日志,意味着不走事务!!!

    • truncate 比 delete速度快,且使用的系统和事务日志资源少。
    • truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。 
    • truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。 

    老三-----delete

    出没场合:delete table tb_name     --虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)

                或

                delete table tb where 条件

    能力:删除内容不删除定义,不释放空间。三兄弟之中最容易欺负的一个

    • delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back
  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/lzghyh/p/13023643.html
Copyright © 2011-2022 走看看