程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 詳解MySQL中DROP,TRUNCATE 和DELETE的差別完成mysql從零開端

詳解MySQL中DROP,TRUNCATE 和DELETE的差別完成mysql從零開端

編輯:MySQL綜合教程

詳解MySQL中DROP,TRUNCATE 和DELETE的差別完成mysql從零開端。本站提示廣大學習愛好者:(詳解MySQL中DROP,TRUNCATE 和DELETE的差別完成mysql從零開端)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解MySQL中DROP,TRUNCATE 和DELETE的差別完成mysql從零開端正文


分歧點: 
1. truncate和 delete只刪除數據不刪除表的構造(界說) 
    drop語句將刪除表的構造被依附的束縛(constrain),觸發器(trigger),索引(index); 依附於該表的
存儲進程/函數將保存,然則變成invalid狀況. 

2.delete語句是dml,這個操作會放到rollback segement中,事務提交以後才失效;假如有響應的trigger,
履行的時刻將被觸發. 
   truncate,drop是ddl, 操作立刻失效,原數據不放到rollback segment中,不克不及回滾. 操作不觸發
trigger. 

3.delete語句不影響表所占用的extent, 高水線(high watermark)堅持原地位不動 
  明顯drop語句將表所占用的空間全體釋放 
  truncate 語句缺省情形下見空間釋放到 minextents個 extent,除非應用reuse storage;   truncate
會將高水線復位(回到最開端). 

4.速度,普通來講: drop> truncate > delete 

5.平安性:當心應用drop 和truncate,特別沒有備份的時刻.不然哭都來不及. 
應用上,想刪除部門數據行用delete,留意帶上where子句. 回滾段要足夠年夜. 
想刪除表,固然用drop 
想保存表而將一切數據刪除. 假如和事務有關,用truncate便可. 假如和事務有關,或許想觸發trigger,還
是用delete. 
假如是整頓表外部的碎片,可以用truncate跟上reuse stroage,再從新導入/拔出數據/


現實運用:
delete from table; //刪除一切數據
truncate table; //將auto_increatement調制從0開端,現實就是從1開端
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved