Mysql之drop、delete、truncate的區別


一、不同點

1.truncate table 和 delete只刪除記錄不刪除表的結構,drop語句將刪除表的結構依賴的約束(constrain),觸發器(trigger),索引(index);

語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);依賴於該表的存儲過程/函數將保留,但是變為invalid狀態 

2.truncate之后的自增字段從頭開始計數了,而delete的仍保留原來的最在數值。

 

 

二、總結:

1.在速度上,一般來說,drop> truncate > delete。

2.在使用drop和truncate時一定要注意,雖然可以恢復,但為了減少麻煩,還是要慎重。

3.如果想刪除部分數據用delete,注意帶上where子句,回滾段要足夠大;
如果想刪除表,當然用drop;
如果想保留表而將所有數據刪除,如果和事務無關,用truncate即可;
如果和事務有關,或者想觸發trigger,還是用delete
如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據


不同點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM