国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MySQL 中刪除的數(shù)據(jù)都去哪兒了?

開發(fā) 前端
我們都知道 InnoDB 的 MVCC 的數(shù)據(jù)來源是一個一個 Undo Log 形成的單鏈表,而 Purge 線程就是用于定期清理 Undo Log 的,并且在清理完 刪除數(shù)據(jù)所生成的 Undo Log 的時候,就會把對應(yīng)的行記錄給移除了。

[[416817]]

本文轉(zhuǎn)載自微信公眾號「SH的全棧筆記」,作者SH的全棧筆記 。轉(zhuǎn)載本文請聯(lián)系SH的全棧筆記公眾號。

不知道大家有沒有想過下面這件事?

我們平時調(diào)用 DELETE 在 MySQL 中刪除的數(shù)據(jù)都去哪兒了?

這還用問嗎?當(dāng)然是被刪除了啊

那么這里又有個新的問題了,如果在 InnoDB 下,多事務(wù)并發(fā)的情況下,如果事務(wù)A刪除了 id=1 的數(shù)據(jù),同時事務(wù)B又去讀取 id=1 的數(shù)據(jù),如果這條數(shù)據(jù)真的被刪除了,那 MVCC 拿啥數(shù)據(jù)返回給用戶呢?

沒錯,這就需要了解一下 MySQL 的多版本并發(fā)的原理相關(guān)的東西,感興趣的可以去看我之前寫的這篇文章。

所以,實(shí)際情況中,調(diào)用了 DELETE 語句刪除的數(shù)據(jù)并不會真正的被物理刪除,這條數(shù)據(jù)其實(shí)還在那,只不過被打上了一個標(biāo)記,標(biāo)記已刪除。

這其實(shí)跟我們?nèi)粘5牟僮?mdash;—軟刪除,差不多是一個意思

在 MySQL 中, UPDATE 和 DELETE 操作本質(zhì)上是一樣的, 都屬于更新操作,刪除操作只不過是把某行數(shù)據(jù)中的一個特定的比特位標(biāo)記為已刪除,僅此而已。

那么問題又來了,那這些刪除的數(shù)據(jù)如果一直這么堆下去,那不早晚把硬盤撐爆?

如果都玩兒成這樣了,那 MySQL 還能像現(xiàn)在這樣被大規(guī)模的用于生產(chǎn)環(huán)境中嗎?那 MySQL 到底是怎么玩的?

這就需要提到 Purge 操作了。

Purge操作是啥?

Purge 操作才是真正將數(shù)據(jù)(已被標(biāo)記為已刪除)物理刪除的操作。

Purge 操作針對的數(shù)據(jù)對象,不僅僅是某一行,還有其對應(yīng)的索引數(shù)據(jù)和 Undo Log。

好的那么問題又來了。

問題是,Purge 操作什么時候會執(zhí)行呢?實(shí)際上,你可以將執(zhí)行 Purge 操作的線程(簡稱 Purge 線程)理解成一個后臺周期性執(zhí)行的線程。

Purge 線程可以有一個,也可以有多個,具體的線程數(shù)量可以由 MySQL 的配置項(xiàng) innodb_purge_threads 來進(jìn)行配置。當(dāng)然,我相信你肯定不記得在使用 MySQL 的時候配置過這個,因?yàn)?innodb_purge_threads 有個默認(rèn)值,值為 4。

InnoDB 會根據(jù) MySQL 中表的數(shù)量和 Purge 線程的數(shù)量進(jìn)行分配。

但正是因?yàn)橛羞@種特性,Purge 線程的數(shù)量才需要根據(jù)業(yè)務(wù)的實(shí)際情況來做調(diào)整。舉個例子,假設(shè) DML 操作都集中在某張表,比如表1上...

你先等等,我打斷一下......

什么叫 DML 操作?總喜歡搞些復(fù)雜的名詞...DML(Data Manipulation Language)數(shù)據(jù)操作語句,實(shí)際上就是CRUD增刪改查...

與之類似的概念還有DDL(Data Definition Language)數(shù)據(jù)定義語句,也就是CREATE、DROP和ALTER等等.

以及DCL(Data Control Language)數(shù)據(jù)控制語句,也就是GRANT、REVOKE等等...

繼續(xù)說回來,雖然 Purge 線程的數(shù)量是可配置的,但是也不是你想配多少就配多少的。不然你給它干個 10000 個線程,那不就直接原地 OOM 了嗎?

innodb_purge_threads 的最大值為 32,而且并不是我們配了 32 InnoDB 就真的會啟動 32 個 Purge 線程,為啥呢?舉個很簡單的例子,假設(shè)此時只有一張表,然后我們配置了 32 個 Purge 線程。

你看著上面這個圖問問自己,這「河里」嗎?這樣不僅浪費(fèi)了系統(tǒng)的資源,同時還使得不同的 Purge 線程之間發(fā)生了數(shù)據(jù)競爭。不僅如此,Purge 線程還可能跟用戶線程產(chǎn)生競爭。

但是當(dāng)系統(tǒng)中真的有 32 張表的時候,情況又不一樣了,一個 Purge 線程對應(yīng)一張表,線程與線程之間就不會存在數(shù)據(jù)競爭,并且沒有浪費(fèi)系統(tǒng)資源,還能夠提升執(zhí)行 Purge 操作的性能。

這就是為啥 InnoDB 會根據(jù)實(shí)際情況來調(diào)整 MySQL 中 Purge 線程的數(shù)量,所以我們在配置的時候也要按照實(shí)際情況來設(shè)置。

舉個例子,如果你的數(shù)據(jù)庫中,增刪改 的操作只集中在某幾張表上,則可以考慮將 innodb_purge_threads 設(shè)置的稍微低一點(diǎn)。相反,如果 增刪改 的操作幾乎每張表都有,那么 innodb_purge_threads 就可以設(shè)置的大一些。

了解完 Purge 線程本身之后,我們就可以來了解 Purge 線程所針對的對象了。Purge 線程主要清理的對象是 Undo Logs,其次是行記錄。

因?yàn)?Undo Log 可以分為:

  • Insert Undo Log
  • Update Undo Log

所以更準(zhǔn)確的說法是,Purge 線程清理的對象是 Update Undo Log 和 行記錄,因?yàn)?Insert Undo Log 會在事務(wù)提交之后就會被刪除。

我們都知道 InnoDB 的 MVCC 的數(shù)據(jù)來源是一個一個 Undo Log 形成的單鏈表,而 Purge 線程就是用于定期清理 Undo Log 的,并且在清理完 刪除數(shù)據(jù)所生成的 Undo Log 的時候,就會把對應(yīng)的行記錄給移除了。

那么問題又來了,Purge 線程每次會讀取多少條件 Undo Log 記錄呢?

很明顯,它不是看當(dāng)時的心情來決定取多少條的。它是通過配置項(xiàng) innodb_purge_batch_size 來控制的,默認(rèn)是 300。然后InnoDB會將這300條 Undo Log 分給innodb_purge_threads個 Purge 線程。在清理的過程中,Purge 線程還會釋放 Undo Log 表空間內(nèi)的文件。

 

責(zé)任編輯:武曉燕 來源: SH的全棧筆記
相關(guān)推薦

2017-05-15 15:54:50

MySQL數(shù)據(jù)庫

2014-06-09 16:32:55

大數(shù)據(jù)大數(shù)據(jù)人才

2015-11-13 09:34:25

流量wifi運(yùn)營商

2021-11-22 22:05:47

電腦回收站文件

2019-10-08 15:08:28

人臉數(shù)據(jù)AI數(shù)據(jù)收集

2020-06-11 18:06:03

電腦電路板元件

2015-11-10 10:57:18

流量不清零運(yùn)營商

2013-05-03 14:11:43

程序員

2015-06-03 10:22:31

程序員代碼

2019-04-30 08:49:23

通信人才研發(fā)

2024-01-25 17:58:14

OpenAIAI科技公司

2017-08-24 13:10:09

IT

2017-12-21 08:09:13

程序員技術(shù)學(xué)習(xí)

2019-09-29 08:50:01

Python IT旅游

2018-10-29 13:46:02

2021-04-06 11:44:21

程序員退休互聯(lián)網(wǎng)

2019-03-25 07:14:57

程序員工程師職業(yè)

2021-06-07 08:18:46

大齡程序員開發(fā)

2014-02-24 09:51:56

大數(shù)據(jù)

2021-06-30 14:24:31

大數(shù)據(jù)年輕人消費(fèi)觀
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

在线久久视频| 在线免费观看日本一区| 538任你躁精品视频网免费| caoporen人人| 国产综合动作在线观看| 欧美精品日韩精品| av在线综合网| 999国产精品| 午夜激情电影在线播放| 午夜免费看视频| 动漫精品视频| 日韩有码在线视频| 色呦呦国产精品| 成人aaaa免费全部观看| 午夜片欧美伦| 国产综合色在线观看| 高清免费观看在线| 樱空桃在线播放| 国产精品免费久久久久久| 亚洲成人激情在线观看| 亚洲女性喷水在线观看一区| 久久免费国产| 亚洲桃色综合影院| 精品极品在线| 91精品久久久久久综合乱菊| 国产香蕉视频在线看| 国产综合福利在线| 亚洲欧美资源在线| 欧美日韩美女在线观看| 国产成人av电影在线| 久久久五月天| 国色天香久久精品国产一区| 成人在线免费视频| 玩弄japan白嫩少妇hd| 国产免费一区| 668精品在线视频| 亚洲国产高潮在线观看| 亚洲综合丝袜美腿| 岛国一区二区三区| 亚洲茄子视频| 妖精视频一区二区三区免费观看| 2018av在线| 久草在线网址| 亚洲三级视频网站| 亚洲欧美精品在线观看| 成人午夜在线视频一区| 欧美另类第一页| 日韩电影中文 亚洲精品乱码| 欧美色视频日本高清在线观看| 久久毛片高清国产| 久久99九九99精品| 亚洲视频免费| 精品久久国产| 欧美精品影院| 日韩影片中文字幕| 日本免费在线视频| 国产对白在线正在播放| 麻豆一区二区三区视频| 17c丨国产丨精品视频| 蜜桃视频在线观看成人| 国产精品亚洲综合天堂夜夜| 欧美成人激情在线| 亚洲精品福利在线| 欧美日韩卡一卡二| 午夜精品123| 亚洲欧美在线视频| 337p粉嫩大胆噜噜噜噜噜91av | 国产精品久线在线观看| 国产自产2019最新不卡| 国产精品一二| 欧美日本三区| 欧美一区电影| 狠狠久久伊人| 激情综合婷婷| 美女视频一区| 蜜桃视频成人m3u8| 99在线视频影院| 超碰在线观看免费| 在线观看免费网站黄| 美女欧美视频在线观看免费 | 免费看a级黄色片| 桥本有菜av在线| 日韩福利视频| 欧美激情国产日韩| 精品国产免费人成电影在线观...| 国产精自产拍久久久久久蜜| 日本精品久久久| 欧美成年人视频| 久久精品中文字幕| 亚洲男人的天堂在线观看| 久久久精品在线视频| 亚洲国产合集| 精品久久久精品| 日韩女优中文字幕| 欧美人成在线| 国产婷婷精品av在线| 4438全国亚洲精品在线观看视频| 欧美 国产 日本| 国产精品最新| 亚洲福利视频专区| 国产va在线观看| 精品999成人| av一区在线播放| 中文字幕人成乱码在线观看| segui88久久综合| 男女视频在线| 成入视频在线观看| 人在线成免费视频| 成人影院入口| 成人精品国产| av在线播放一区二区| 久久av网站| 超碰在线一区| 国产精品色在线网站| 久久爱www成人| 99久精品视频在线观看视频| 重囗味另类老妇506070| 综合色一区二区| 亚洲视频播放| 久久精品国产99国产| 国产99久久久国产精品免费看| 成人91在线观看| 丁香花在线影院观看在线播放| 久久亚洲a v| 狠狠操精品视频| 日韩男人天堂| 飘雪影视在线观看免费观看| 91在线视频免费看| 国产网红女主播精品视频| 成人啊v在线| 成人搞黄视频| 成人在线免费小视频| 日韩天天综合| 国产乱码精品一品二品| 91最新地址在线播放| 国产精品第四页| 欧美日韩国产中文精品字幕自在自线| 欧美日免费三级在线| 亚洲成人三级在线| 久久成年人免费电影| 国产成人一区二区三区电影| 91久久久久久久一区二区| 你懂的视频在线一区二区| 亚洲一区在线直播| 动漫av免费观看| 亚洲aⅴ优女av综合久久久| 色综合久久影院| 国产一区一一区高清不卡| 美国十次av导航亚洲入口| 91精品一区国产高清在线gif | 91露出在线| а√在线中文网新版地址在线| 国模私拍国内精品国内av| 日本成人中文| 日韩午夜精品| a美女胸又www黄视频久久| 亚洲伊人色欲综合网| 欧美一区二区三区性视频| 一本一本久久a久久精品综合小说| 97av在线影院| 另类欧美小说| 成人性做爰aaa片免费看不忠| 男人的天堂在线视频| 在线看片福利| 欧美猛男男男激情videos| 久久一本综合频道| 国产日韩成人精品| 欧美三级电影在线观看| 一本一本久久a久久精品牛牛影视| 日韩av手机在线看| 欧美日韩三区四区| av免费中文字幕| wwwww在线观看免费视频| 日本精品久久| 国产精品xvideos88| 国产一区二区三区黄视频| 亚洲欧美区自拍先锋| 精品国产乱码久久久久久久久 | 日韩欧美一区二区三区在线观看| 欧美日韩在线不卡| 18网站在线观看| 亚洲欧美综合图区| 国产手机视频一区二区| 精品日韩av| 精品国产一区二区三区在线| 国产丝袜一区二区三区| 欧美日韩 国产精品| 久草热久草热线频97精品| 久久精品999| 亚洲色成人一区二区三区小说| 国产精品不卡视频| 色就是色亚洲色图| 91麻豆精品国产91久久久久 | 成人av电影在线| 久久久精品麻豆| 色婷婷av一区二区三区软件| 草美女在线观看| 国a精品视频大全| 在线精品亚洲| 欧美 日韩 亚洲 一区|