truncat
truncate
概念:
truncate的作用是清空表或者說是截斷表,只能作用于表
特點:
1. truncate只能作用于表
2. truncate只刪除表中數據,不刪除表的結構
語法:
truncate table tbl_name
或者 truncate tbl_name
truncate table 表名稱;truncate 原理:
DELETE:
- 語句執行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除操作作為事務記錄在日志中保存以便進行進行回滾操作。DELETE操作不會減少表或索引所占用的空間。
TRUNCATE TABLE:
- 一次性地從表中刪除所有的數據
- 并不把單獨的刪除操作記錄記入日志保存,刪除行是不能恢復的。
- 并且在刪除的過程中不會激活與表有關的刪除觸發器。執行速度快。
- 當表被TRUNCATE 后,這個表和索引所占用的空間會恢復到初始大小,
truncate與drop,delete的對比
總結:
1、在速度上,一般來說,drop> truncate > delete。
2、在使用drop和truncate時一定要注意,雖然可以恢復,但為了減少麻煩,還是要慎重。
3、如果是想刪除
- 如果想刪除部分數據用delete,注意帶上where子句,回滾段要足夠大;
- 如果想刪除表,當然用drop;
- 如果想保留表而將所有數據刪除,如果和事務無關,用truncate即可;
- 如果和事務有關,或者想觸發trigger,還是用delete;
- 如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據。
總結
- 上一篇: Matlab2017b启动慢,一直处于初
- 下一篇: vim 专栏声明