delete和Truncate的較量
阿新 • • 發佈:2019-02-04
前幾天在做一個功能,因為之前往資料庫裡添加了不正確的資料,所以想要將表裡的資料刪除一下。腦袋裡想也沒想,直接就用了個Delete,由於資料量真的很大,足足刪除了將近半個小時,這時候,我就知道自己錯了。資料沒有刪除完,因為不願意等了,所以直接又取消了。但是我又查詢了一下表裡的資料,這時候資料已經清空了。資料刪除了也沒有執行commit。
所有又新增新資料,添加了32條,執行了個查詢語句,這32條語句足足用了25.983秒,原因很明顯,由於沒有提交事務,而且用的delete語句,所有沒有真正刪除,寫到日誌裡,還可以回滾。
明明32條資料,缺用了這麼長時間。
解決辦法:使用truncate
那麼delete語句和Truncate語句有什麼區別呢?
delete |
trcunate |
|
語法 |
Delete from TableName |
Truncate Table TableName |
執行速度 |
慢 |
快 |
刪除形式 |
一條一條刪除 |
一次性刪除整個頁 |
所用的日誌空間 |
多 |
少 |
是否可以加條件 |
可以加條件 |
不可以加條件 |
資料庫的SQL語句還有很多,我們不能只侷限於使用select、Update、delete、Insert,還有很多語句,我們都要學會使用,才能給我們的工作帶來效率,給我們的程式帶來效率。工作中多多積累經驗,及時一個簡單的