drop truncate和delete的區別

2021-08-15 11:32:16 字數 575 閱讀 6804

1、作用上來講

drop語句刪除表結構及所有資料

truncate table 與不帶 where 子句的 delete 語句都是刪除表中的全部行

2、安全性上講

在沒有備份情況下,謹慎使用 drop 與 truncate。

要刪除部分資料行採用delete且注意結合where來約束影響範圍。回滾段要足夠大。

若想保留表而將表中資料刪除,如果於事務無關,用truncate即可實現。

要刪除錶用drop;

3、在速度上,一般來說,drop> truncate > delete。

truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。

delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。

4、從空間上來說

delete不會釋放空間

當表被truncate 後,這個表和索引所占用的空間會恢復到初始大小,

drop語句將表所占用的空間全釋放掉。

delete和drop truncate的區別

1.truncate和不帶where子句的delete 以及drop都會刪除表內的資料。2.drop truncate都是ddl語句 資料定義語言 執行後會自動提交。1.truncate 和 delete 只刪除資料不刪除表的結構 定義 drop 語句將刪除表的結構被依賴的約束 constrain ...

drop truncate和delete的區別

delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。...

drop truncate和delete的區別

1 delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度...