mysql delete伶贰、truncate蛛砰、drop的區(qū)別

MySQL刪除數(shù)據(jù)的方式都有哪些?

咱們常用的三種刪除方式:通過 delete黍衙、truncate泥畅、drop 關(guān)鍵字進行刪除;這三種都可以用來刪除數(shù)據(jù)琅翻,但場景不同位仁。

一柑贞、從執(zhí)行速度上來說

drop > truncate >> DELETE

二、從原理上講

1聂抢、DELETE

DELETE from TABLE_NAME where xxx

1钧嘶、DELETE屬于數(shù)據(jù)庫DML操作語言,只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)琳疏,會走事務有决,執(zhí)行時會觸發(fā)trigger;

2空盼、在 InnoDB 中书幕,DELETE其實并不會真的把數(shù)據(jù)刪除,mysql 實際上只是給刪除的數(shù)據(jù)打了個標記為已刪除我注,因此 delete 刪除表中的數(shù)據(jù)時按咒,表文件在磁盤上所占空間不會變小,存儲空間不會被釋放但骨,只是把刪除的數(shù)據(jù)行設(shè)置為不可見励七。雖然未釋放磁盤空間,但是下次插入數(shù)據(jù)的時候奔缠,仍然可以重用這部分空間(重用 → 覆蓋)掠抬。

3、DELETE執(zhí)行時校哎,會先將所刪除數(shù)據(jù)緩存到rollback segement中两波,事務commit之后生效;

4、delete from table_name刪除表的全部數(shù)據(jù),對于MyISAM 會立刻釋放磁盤空間闷哆,InnoDB 不會釋放磁盤空間;

5腰奋、對于delete from table_name where xxx 帶條件的刪除, 不管是InnoDB還是MyISAM都不會釋放磁盤空間;

6、delete操作以后使用 optimize table table_name 會立刻釋放磁盤空間抱怔。不管是InnoDB還是MyISAM 劣坊。所以要想達到釋放磁盤空間的目的,delete以后執(zhí)行optimize table 操作屈留。

示例:查看表占用硬盤空間大小的SQL語句如下:(用M做展示單位局冰,數(shù)據(jù)庫名:csjdemo,表名:demo2)

select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') as table_size 
   from information_schema.tables 
      where table_schema='csjdemo' AND table_name='demo2';

然后執(zhí)行空間優(yōu)化語句灌危,以及執(zhí)行后的表Size變化:

optimize table demo2

再看看這張表的大小康二,就只剩下表結(jié)構(gòu)size了。

7勇蝙、delete 操作是一行一行執(zhí)行刪除的沫勿,并且同時將該行的的刪除操作日志記錄在redo和undo表空間中以便進行回滾(rollback)和重做操作,生成的大量日志也會占用磁盤空間。

2藕帜、truncate

Truncate table TABLE_NAME

1烫罩、truncate:屬于數(shù)據(jù)庫DDL定義語言,不走事務洽故,原數(shù)據(jù)不放到 rollback segment 中,操作不觸發(fā) trigger盗誊。

執(zhí)行后立即生效时甚,無法找回
執(zhí)行后立即生效,無法找回
執(zhí)行后立即生效哈踱,無法找回

2荒适、truncate table table_name 立刻釋放磁盤空間 ,不管是 InnoDB和MyISAM 开镣。truncate table其實有點類似于drop table 然后creat,只不過這個create table 的過程做了優(yōu)化刀诬,比如表結(jié)構(gòu)文件之前已經(jīng)有了等等。所以速度上應該是接近drop table的速度;

3邪财、truncate能夠快速清空一個表陕壹。并且重置auto_increment的值。

但對于不同的類型存儲引擎需要注意的地方是:

  • 對于MyISAM树埠,truncate會重置auto_increment(自增序列)的值為1糠馆。而delete后表仍然保持auto_increment。

  • 對于InnoDB怎憋,truncate會重置auto_increment的值為1又碌。delete后表仍然保持auto_increment。但是在做delete整個表之后重啟MySQL的話绊袋,則重啟后的auto_increment會被置為1毕匀。

也就是說,InnoDB的表本身是無法持久保存auto_increment癌别。delete表之后auto_increment仍然保存在內(nèi)存皂岔,但是重啟后就丟失了,只能從1開始规个。實質(zhì)上重啟后的auto_increment會從 SELECT 1+MAX(ai_col) FROM t 開始凤薛。

4、小心使用 truncate诞仓,尤其沒有備份的時候缤苫,如果誤刪除線上的表,記得及時聯(lián)系中國民航墅拭,訂票電話:400-806-9553

3活玲、drop

Drop table Tablename

1、drop:屬于數(shù)據(jù)庫DDL定義語言,同Truncate舒憾;

執(zhí)行后立即生效镀钓,無法找回
執(zhí)行后立即生效,無法找回
執(zhí)行后立即生效镀迂,無法找回

2丁溅、drop table table_name 立刻釋放磁盤空間 ,不管是 InnoDB 和 MyISAM; drop 語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain)探遵、觸發(fā)器(trigger)窟赏、索引(index); 依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)?invalid 狀態(tài)。

3箱季、小心使用 drop 涯穷,要刪表跑路的兄弟,請在訂票成功后在執(zhí)行操作藏雏!訂票電話:400-806-9553

可以這么理解拷况,一本書,delete是把目錄撕了掘殴,truncate是把書的內(nèi)容撕下來燒了赚瘦,drop是把書燒了

圖片

END

引用鏈接:blog.csdn.net/qq_39390545/article/details/107144859

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杯巨,隨后出現(xiàn)的幾起案子蚤告,更是在濱河造成了極大的恐慌,老刑警劉巖服爷,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杜恰,死亡現(xiàn)場離奇詭異,居然都是意外死亡仍源,警方通過查閱死者的電腦和手機心褐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笼踩,“玉大人逗爹,你說我怎么就攤上這事『坑冢” “怎么了掘而?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長于购。 經(jīng)常有香客問我袍睡,道長,這世上最難降的妖魔是什么肋僧? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任斑胜,我火速辦了婚禮控淡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘止潘。我一直安慰自己掺炭,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布凭戴。 她就那樣靜靜地躺著涧狮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪么夫。 梳的紋絲不亂的頭發(fā)上勋篓,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音魏割,去河邊找鬼。 笑死钢颂,一個胖子當著我的面吹牛钞它,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播殊鞭,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼遭垛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了操灿?” 一聲冷哼從身側(cè)響起锯仪,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趾盐,沒想到半個月后庶喜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡救鲤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年久窟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片本缠。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡斥扛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丹锹,到底是詐尸還是另有隱情稀颁,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布楣黍,位于F島的核電站匾灶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锡凝。R本人自食惡果不足惜粘昨,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一垢啼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧张肾,春花似錦芭析、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芍秆,卻和暖如春惯疙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妖啥。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工霉颠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荆虱。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓蒿偎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怀读。 傳聞我的和親對象是個殘疾皇子诉位,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容