日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1、從概念上來講,它們是不同的,truncate是DDL語句,會隱式提交,所以,不能回滾,不會觸發觸發器。delete是DML語句,這個操作會被放到 rollback segment中,事務提交后才生效。如果有相應的觸發器,執行的時候將被觸發。

2、語法結構不同,truncate會刪除表中所有數據,delete后面可以跟where進行條件過濾,如果不跟任何條件,也會刪除所有數據

其他的不同,我們結合實例來說明,首先要創建一個表,建表語句如下:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

再創建一個存儲過程,方便插入數據:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

3、第三點不同就是,truncate是整體刪除,速度較快,而delete是逐條刪除,速度較慢

使用存儲過程向student表中插入10萬條數據,命令是call insert_student(100000),用truncate和delete兩種方法清空表中數據,查看耗時,表中已插入10萬條數據:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

truncate table student執行耗時為:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

再插入同樣的數據量,delete from student耗時為:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

數據量比較少,不過也能看出來執行耗時的明顯區別,而delete執行后的顯示信息有Affected rows,可見是逐條執行的

4、truncate不寫服務器log,delete寫服務器log,從這點也可以明白truncate效率比delete高的原因

5、truncate刪除數據后,會把自增字段的值給重置,而delete會記住上次的自增字段值,再次插入后會接著上次字段值來增加

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

用truncate刪除數據后,再增加5條,結果如下:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

可以發現自增字段重置了,用delete刪除上面的5條數據,然后向表中再添加3條數據,結果如下:

MySQL數據庫中,同樣是刪除數據,truncate與delete語句的區別

 

可以看出,delete記住上次自增的字段,在原來的基礎上進行自增。

6、表和索引所占空間的不同。當表被truncate 后,這個表和索引所占用的空間會恢復到初始大小,delete操作不會減少表或索引所占用的空間。

分享到:
標簽:MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定