1. 程式人生 > >delete和Truncate的較量

delete和Truncate的較量

前幾天在做一個功能,因為之前往資料庫裡添加了不正確的資料,所以想要將表裡的資料刪除一下。腦袋裡想也沒想,直接就用了個Delete,由於資料量真的很大,足足刪除了將近半個小時,這時候,我就知道自己錯了。資料沒有刪除完,因為不願意等了,所以直接又取消了。但是我又查詢了一下表裡的資料,這時候資料已經清空了。資料刪除了也沒有執行commit

所有又新增新資料,添加了32條,執行了個查詢語句,這32條語句足足用了25.983秒,原因很明顯,由於沒有提交事務,而且用的delete語句,所有沒有真正刪除,寫到日誌裡,還可以回滾。

明明32條資料,缺用了這麼長時間。


解決辦法:使用truncate

語句,全部刪除,將隱藏在日誌中的那些資料也全部清除。

那麼delete語句和Truncate語句有什麼區別呢?

delete

trcunate

語法

Delete from TableName

Truncate Table TableName

執行速度

刪除形式

一條一條刪除

一次性刪除整個頁

所用的日誌空間

是否可以加條件

可以加條件

不可以加條件


       資料庫的SQL語句還有很多,我們不能只侷限於使用selectUpdatedeleteInsert,還有很多語句,我們都要學會使用,才能給我們的工作帶來效率,給我們的程式帶來效率。工作中多多積累經驗,及時一個簡單的
SQL語句,也是我們寶貴的財富。