zoukankan      html  css  js  c++  java
  • MySQL--delete/truncate/drop

    1. delete---delete from SC where id='1001'+++删除数据,留下表的结构(又称表的定义),表的数据和索引空间不会减少
    2. truncate---truncate demo3 SC+++删除数据,留下表结构,表的数据和索引空间恢复至初始值大小
    3. drop---drop demo3 SC/drop database demo3+++删除所有,空间释放
    • truncate 和 delete 只删除数据不删除表的结构 ,drop 语句将删除表的结构被依赖的约束(constrain), 触发器(trigger), 索引(index); 依赖于该表的存储过程/函数将保留, 但是变为 invalid 状态。
    • delete 语句是 dml, 操作会放到 rollback segement 中, 事务提交之后才生效; 如果有相应的 trigger, 执行的时候将被触发。 truncate, drop 是 ddl, 操作立即生效, 原数据不放到 rollback segment 中, 不能回滚。 操作不触发 trigger。
    • delete 语句不影响表所占用的 extent, 高水线保持原位置不动。  truncate 语句缺省情况下见空间释放到 minextents 个 extent, 除非使用 reuse storage; truncate会将高水线复位(回到最开始)。

    小心使用 drop 和 truncate, 及时备份。否则哭都来不及。

    • 删除表用 drop。
    • 保留表而将所有数据删除。如果和事务无关, 用 truncate 。 如果和事务有关, 或者想触发 trigger, 还是用 delete。
    • 如果是整理表内部的碎片, 可以用 truncate 跟上 reuse stroage, 再重新导入/插入数据。
  • 相关阅读:
    LinuxMCE
    qBittorrent 0.9.0
    Exaile 0.2.9
    GAdminHttpd:图形化的 Apache 打点对象
    FBReader-电子书阅读对象
    CSSED:Linux 下 Web 拓荒者的 CSS 编纂利器
    Canorus:乐谱编辑软件
    AutoScan-收集监视及办理器械
    Lunar Applet:在桌面表现阴历
    Totem 2.18.1
  • 原文地址:https://www.cnblogs.com/Dfrank/p/11839467.html
Copyright © 2011-2022 走看看