成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL:刪除操作Delete、Truncate、Drop用法比較

運維 數據庫運維
今天小編給大家梳理一下MYSQL刪除操作Delete、Truncate、Drop用法有什么區別,到底該如何合理使用,希望對大家能有幫助!

[[428208]]

今天小編給大家梳理一下MySQL刪除操作Delete、Truncate、Drop用法有什么區別,到底該如何合理使用,希望對大家能有幫助!

1、執行速度比較

Delete、Truncate、Drop關鍵字都可以刪除數據

drop>truncate>delete

2、原理方面

2.1 delete

delete屬于數據庫DML操作語言,只會刪除數據表中的記錄,會執行事務,執行的時候也會觸發觸發器。

InnoDB數據庫引擎中,執行delete操作只會給刪除的記錄打上了刪除標記,并不會真正刪除數據,只是把刪除的數據記錄設置為不可見,不會釋放磁盤空間,如果插入新的數據可以覆蓋該部分空間。

如果開啟事務的話,執行delete操作,會先將要刪除數據緩存到rollback segement中,等事務commit之后才生效。

delete from table_name 不帶查詢條件會刪除表的全部數據,MyISAM引擎會立刻釋放磁盤空間,InnoDB 不會釋放磁盤空間;如果帶查詢條件的話都不會釋放磁盤空間,可以執行optimize table table_name 會立刻釋放磁盤空間。建議如果需要釋放存儲空間的話可以執行delete后,然后執行optimize table table_name 語句達到清理磁盤空間的目的。

-- 查詢數據庫test對應的表t_user 占用的磁盤空間

  1. select concat(round(sum(DATA_LENGTH/1024/1024),2),'M'as table_size  
  2.  
  3. from information_schema.tables  
  4.  
  5. where table_schema='test' AND table_name='t_user'

說明:delete 操作是逐行執行刪除的,并且同時將每行的的刪除操作日志記錄在redo和undo表空間中去,便于進行回滾(rollback)和重做操作,因此生成的大量操作日志也會占用磁盤空間。

2.2 truncate

truncate是數據庫DDL定義語言,不受事務影響,也不會觸發 trigger。執行操作后會立即生效,無法找回刪除的數據。

執行truncate table table_name 會立刻釋放磁盤空間 ,不管是 InnoDB和MyISAM 都一樣 。

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仍然保存在內存,但是重啟后就找不到了,只能從1開始。實際上重啟后的auto_increment會從 SELECT 1+MAX(ai_col) FROM t 開始。

使用truncate操作的時候要最好備份表,避免出現不可挽回的情況。

2.3 drop

drop屬于數據庫DDL定義語言,和truncate一樣。執行后會立即生效,不可恢復。

drop table table_name 執行成功后不管是MyISM還是InnoDB都會立刻釋放磁盤空間 ,并且會刪除該數據表上依賴的約束(constrain)、觸發器(trigger)、索引(index);  依賴于該表的存儲過程/函數將保留,但是會變為失效狀態。

總結

在工作當中執行數據庫刪除的時候一定要慎重再慎重,建議每次進行數據刪除的使用最好數據表的備份工作,這樣就會大大減少你刪除跑路的幾率。很多時候不要過于相信自己的動手能力,老虎還有打盹的時候,萬一手滑了呢。盡可能養成好的數據庫運維習慣,這樣會讓自己少跌跟頭,你的事業才會更加順利。

本文轉載自微信公眾號「IT技術分享社區」,可以通過以下二維碼關注。轉載本文請聯系IT技術分享社區公眾號。

個人博客網站:https://programmerblog.xyz

 

責任編輯:武曉燕 來源: IT技術分享社區
相關推薦

2023-12-05 15:36:39

數據庫SQL

2024-10-22 17:04:31

2020-10-21 10:30:24

deletetruncatedrop

2022-06-08 07:34:25

InnoDBdeleteMySQL

2022-06-20 07:44:22

truncatedeletedrop

2010-10-08 16:05:30

MySQL DELET

2010-11-10 13:28:06

SQL Server刪

2010-05-20 09:01:22

MySQL數據庫

2011-08-11 13:19:17

MySQLupdatedelete

2012-12-26 09:36:45

MySQLDelete

2024-08-09 10:06:09

2010-05-27 17:35:36

MYSQL DELET

2020-11-17 09:01:09

MySQLDelete數據

2010-09-03 10:21:35

SQL刪除

2019-05-28 16:25:34

MySQL刪除操作數據庫

2010-11-11 10:03:58

SQL Delete命

2022-05-07 10:20:17

truncatedeleteMySQL

2010-09-16 16:17:03

TRUNCATE TA

2010-10-22 16:40:27

SQL TRUNCAT

2010-02-04 16:35:24

C++ delete
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人亚洲天堂 | www.com久久久| 91综合网 | 成人午夜精品一区二区三区 | 天天操操| 亚洲精品一区二区网址 | 亚洲最新在线视频 | 日韩国产一区二区三区 | 欧美极品少妇xxxxⅹ免费视频 | 97人人澡人人爽91综合色 | 国产精品v | 久久久久国产精品人 | 天堂免费 | 精品96久久久久久中文字幕无 | www.日韩高清| h视频免费在线观看 | 亚洲成人免费 | 这里只有精品999 | 国产精品一区二区三级 | 欧美日日| 日韩一区二区免费视频 | 国精产品一品二品国精在线观看 | 中文字幕一区二区三区四区五区 | 欧美精品综合 | 黄片毛片免费观看 | 久久99精品久久久久久国产越南 | 狠狠干综合视频 | www.黄网| 欧美电影网 | 国产在线精品一区二区三区 | 国产中文字幕av | 国产伦精品一区二区三区高清 | 99av成人精品国语自产拍 | 久亚州在线播放 | 成人午夜影院 | 国产成人高清 | 人人擦人人 | 91不卡| 亚洲免费网 | 欧美在线a | 粉嫩一区二区三区国产精品 |