truncate与delete 使用上区别 ?
truncate 删除记录后不可恢复的,不受事务管理,原理:先删除整个表,重新创建
delete 可以被事务管理 ,在事务中删除数据可以回滚恢复,原理: 一行一行删除数据记录
truncate 删除所有记录性能上 好于 delete
1.drop table xx --xx是数据表的名字
作用:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
把表的结构也删除了 下次要使用的时候要重新创建表的结构再插入数据
2.truncate table xx
作用:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,不删除表结构。
truncate 释放空间的体现。truncate table test 后 向test表添加数据,id标识列连续了(体现了truncate删除是释放空间)
插入的字段的id重新从1开始递增 1、2、3…
3.delete table xx
作用:也是删除整个表中的数据 表结构不会删除,但是过程是痛苦的(系统一行一行地删,效率较truncate低) 或delete table tb where 条件
删除内容不删除定义,不释放空间。
用delete删除 数据,然后添加。可以看到添加之后id标识不连续。(说明delete删除不释放空间)
如果重新插入数据时对应的id在上次基础之上递增 4、5、6…
删除表命令
ALTER TABLE flow_def RENAME FLOW_DEF;
ALTER TABLE flow_ext RENAME FLOW_EXT;
ALTER TABLE flow_lines RENAME FLOW_LINES;
ALTER TABLE flow_nodes RENAME FLOW_NODES;
ALTER TABLE flow_table RENAME FLOW_TABLE;
ALTER TABLE flow_task RENAME FLOW_TASK;