truncate table與delete區別,truncatetable

來源:互聯網
上載者:User

truncate table與delete區別,truncatetable

truncate table需要drop table許可權,它是完全清空一張表。從邏輯上看,truncate table同delete 一樣,或是drop table +create table一樣。使用truncate table刪除全表資料,要比delete要快。使用truncate table清空資料,不能進行復原,且不受表間外鍵約束限制。truncate是DDL語句,而且delete是DML語句,兩者區別如下:1.truncate 是郵drop table+create table ,比使用delete一行行刪除資料要快得多,特別是清空大資料的表。2.truncate是一種隱匿提交,所以不能進行復原。3.若當前表有外鍵約束,truncate table 可以清空表中的所有資料,不受外鍵約束限制。4.使用truncate table將自增ID置零,delete則不會。5.在使用分區表時,截斷表儲存分區;也就是說,資料和索引檔案刪除並重新建立,在分區定義(.par)檔案不受影響。6.TRUNCATE TABLE語句不調用刪除觸發器。


參考:

http://dev.mysql.com/doc/refman/5.7/en/truncate-table.htmlhttp://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb-ddl-operations.html


truncate table 與delete * from的不同

區別主要兩個1。 Truncate 是整體刪除, delete是逐條刪除2. truncate不寫伺服器log,delete寫伺服器log,這就是為什麼truncate要快過delete 所以,影響有:1。 truncate 快2。 truncate不啟用 trigger3。 truncate 重設 Identity
 
問TRUNCATE TABLE 與 DELETE在刪除整個表的所有記錄時的不同

1.DELETE
 ・DML語言
 ・可以回退
 ・可以有條件的刪除

DELETE FROM 表名
  WHERE 條件

2.TRUNCATE TABLE
 ・DDL語言
 ・無法回退
 ・預設所有的表內容都刪除
 ・刪除速度比delete快。

TRUNCATE TABLE 表名
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.