天天看點

delete、truncate和drop有什麼差別?#幹貨分享

作者:小微聊測試

軟體測試面試題:delete、truncate和drop差別。

大家好,今天我們來聊一聊軟體測試面試題中常見的一個資料庫面試題:delete、truncate和drop有什麼差別?

·delete是删除表中的資料,使用delete的時候後面往往會跟where條件可以删除指定的符合條件的行資料。在執行delete的時候是逐行删除資料的,這就意味着,delete操作可能會在事務日志中生成大量的日志記錄,并且可能需要較長的時間來執行。特别是在大型表中删除大量行的情況下,delete删除資料需要手動送出事務,送出後删除操作才能生效。是以删除的資料可以進行rollback,復原進行恢複。

delete、truncate和drop有什麼差別?#幹貨分享

·truncate是清空表資料,将資料表中的所有資料全部清除。truncate執行語句不使用where條件,不考慮條件篩選,将表截斷為零行,但保留表的結構定義。truncate操作是一種DDL操作,是以它是非事務性的,在事務日志中産生的日志量相對較小,執行速度更快。特别是在删除大型表時效率高。

delete、truncate和drop有什麼差別?#幹貨分享

·truncate操作不可復原,一旦執行資料将無無法恢複。

delete、truncate和drop有什麼差別?#幹貨分享

·drop是删除整個表對象及其資料。

·drop操作是一種DDL(資料定義語言)操作,會立即從資料庫中永久删除對象并釋放與該對象相關的存儲空間。

·drop操作也是不可復原的,一旦執行對象将無法恢複。

delete、truncate和drop有什麼差別?#幹貨分享

總結一下,delete用于逐行删除特定條件下的行,可以復原。

·truncate用于快速删除整個表的資料,不可復原。

·drop用于永久删除整個表或對象,不可復原。

以上就是delete、truncate和drop的差別。關注我分享更多軟體測試面試題。

繼續閱讀