首頁 >資料庫 >SQL >delete和truncate之間的差異有哪些

delete和truncate之間的差異有哪些

青灯夜游
青灯夜游原創
2019-06-03 15:05:0242787瀏覽

在SQL中delete指令和truncate指令都可用來刪除資料(記錄),那麼它們之間有什麼不同之處?下面這篇文章就來跟大家介紹delete指令和truncate指令之間的差別,希望對你們有幫助。

delete和truncate之間的差異有哪些

delete和truncate指令之間的差異

1、指令類型

delete是資料操作語言(DML)指令;而truncate是資料定義語言(DDL)指令。

2、功能

delete指令根據指定的SQL語句從表中刪除單個,多個或所有記錄;而truncate指令從資料庫中刪除所有記錄和表結構。

3、Where子句

delete指令支援WHERE子句,可以使用帶有DELETE的where子句來過濾和刪除特定記錄;而,truncate指令不支援WHERE子句。

4、鎖定

delete指令採用行級鎖定,表中的每一行都被鎖定以進行刪除;truncate指令採用表級鎖定,鎖定了整個表以刪除所有記錄。

5、索引視圖

delete指令可以與索引視圖一起使用;而,truncate指令不能與索引視圖一起使用。

6、執行速度

由於delete指令維護日誌,因此速度很慢。但是,由於truncate指令在交易日誌中維護最少的日誌記錄,因此執行速度更快。

7、表格結構

delete指令不會影響表格結構,而truncate指令會從資料庫中刪除表格結構。

8、交易空間

delete指令比truncate指令使用更多的交易空間。

以上是delete和truncate之間的差異有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn