国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

InnoDB中的B+Tree和MVCC

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 13:13:10
文檔

InnoDB中的B+Tree和MVCC

InnoDB中的B+Tree和MVCC:之前做了個(gè)InnoDB的分享,主要是關(guān)于InnoDB中B+Tree的結(jié)構(gòu)和MVCC的實(shí)現(xiàn)。 paper writing services PPT:BpTree_MVCC 下面把PPT內(nèi)容稍微整理一下。 首先是B+Tree,下面給出InnoDB中B+Tree的結(jié)構(gòu)(via) 有如下特點(diǎn): 尋道次數(shù)固定,且次數(shù)少(因
推薦度:
導(dǎo)讀InnoDB中的B+Tree和MVCC:之前做了個(gè)InnoDB的分享,主要是關(guān)于InnoDB中B+Tree的結(jié)構(gòu)和MVCC的實(shí)現(xiàn)。 paper writing services PPT:BpTree_MVCC 下面把PPT內(nèi)容稍微整理一下。 首先是B+Tree,下面給出InnoDB中B+Tree的結(jié)構(gòu)(via) 有如下特點(diǎn): 尋道次數(shù)固定,且次數(shù)少(因

之前做了個(gè)InnoDB的分享,主要是關(guān)于InnoDB中B+Tree的結(jié)構(gòu)和MVCC的實(shí)現(xiàn)。 paper writing services PPT:?BpTree_MVCC 下面把PPT內(nèi)容稍微整理一下。 首先是B+Tree,下面給出InnoDB中B+Tree的結(jié)構(gòu)(via) 有如下特點(diǎn): 尋道次數(shù)固定,且次數(shù)少(因?yàn)闃涓叨缺容^

之前做了個(gè)InnoDB的分享,主要是關(guān)于InnoDB中B+Tree的結(jié)構(gòu)和MVCC的實(shí)現(xiàn)。

paper writing services

PPT:?BpTree_MVCC

下面把PPT內(nèi)容稍微整理一下。

首先是B+Tree,下面給出InnoDB中B+Tree的結(jié)構(gòu)(via)

有如下特點(diǎn):

  1. 尋道次數(shù)固定,且次數(shù)少(因?yàn)闃涓叨缺容^低),而HD的尋道是非常費(fèi)時(shí)
  2. 數(shù)據(jù)存儲(chǔ)連續(xù),非葉節(jié)點(diǎn)只存儲(chǔ)指針,數(shù)據(jù)都在葉節(jié)點(diǎn)。索引容易緩存
  3. 每條數(shù)據(jù)都由雙向鏈表組織,范圍查詢快
  4. 數(shù)據(jù)和葉節(jié)點(diǎn)在一起,查詢快(不需要再次尋道),插入慢(分裂/合并需要對(duì)更多數(shù)據(jù)進(jìn)行移動(dòng))。相比MyIASM,葉節(jié)點(diǎn)只存指針,插入塊,查詢慢(多尋道)
  5. 葉節(jié)點(diǎn)每個(gè)塊內(nèi)部雖然在連續(xù)的磁盤空間中,但葉節(jié)點(diǎn)本身并不是連續(xù)存儲(chǔ)的。經(jīng)過較長時(shí)間的運(yùn)行,會(huì)碎片化,影響范圍查詢的效率。不過mysql提供了對(duì)此的優(yōu)化方法。

這里強(qiáng)烈推薦?B+Tree index structures in InnoDB 這篇文章,詳細(xì)介紹了InnoDB中B+Tree的具體實(shí)現(xiàn)結(jié)構(gòu)。

隨后是關(guān)于MVCC。

MVCC是多版本并發(fā)控制,用于在實(shí)現(xiàn)事務(wù)操作時(shí),替代單純的讀寫鎖。單純的讀寫鎖會(huì)對(duì)所有讀過的數(shù)據(jù)加讀寫鎖,讀了就不能寫,寫了就不能讀。

既然是解決讀寫沖突的問題,那何時(shí)能寫何時(shí)能讀就是要考慮的重點(diǎn),為此有“隔離級(jí)別”的概念。這個(gè)概念強(qiáng)調(diào)的就是在什么情況下,允許讀,什么情況下,允許寫。

InnoDB的MVCC支持四種隔離級(jí)別,分別是READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE。其中最常用的是“READ?COMMITTED:讀已提交”和“REPEATABLE READ:可重復(fù)讀”。

  1. READ?COMMITTED:讀已提交。SELECT的時(shí)候無法保證重復(fù)讀數(shù)據(jù)是一樣的,即同一個(gè)事務(wù)中兩次執(zhí)行同樣的查詢語句,若在第一次與第二次查詢之間時(shí)間段,其他事務(wù)又剛好修改了其查詢的數(shù)據(jù)且提交了,則兩次讀到的數(shù)據(jù)不一致。就是“讀”“已提交”的事務(wù)。
  2. REPEATABLE READ:可重復(fù)讀。任意一次事務(wù)中,任何數(shù)據(jù)的可見性都是在本次事務(wù)開始前的狀態(tài),即使其它事務(wù)提交了,對(duì)當(dāng)前事務(wù)依然不可見。即“可重復(fù)”“讀”到相同的內(nèi)容。

需要注意的是,無論任何隔離級(jí)別,一旦某條記錄被UPDATE/DELETE/SELECT FOR UPDATE,即加X鎖后,事務(wù)提交前就不能再被更新(加X鎖)了。

InnoDB是如何實(shí)現(xiàn)事務(wù)的多版本呢,我在演講的時(shí)候也請(qǐng)出了網(wǎng)易何登成大神的PPT

地址:?InnoDB Transaction Lock and MVCC:微盤地址??Slideshare地址

這個(gè)PPT詳細(xì)介紹了MVCC的具體實(shí)現(xiàn),包括鎖相關(guān)的實(shí)現(xiàn),下面我簡單總結(jié)下重點(diǎn)。

InnoDB通過ReadView(視圖)來實(shí)現(xiàn)上述隔離級(jí)別。ReadView會(huì)記錄當(dāng)前狀態(tài)下:

  1. 最小的活躍事務(wù)的事務(wù)ID(全局唯一,自增)
  2. 當(dāng)前事務(wù)的ID
  3. 所有活躍事務(wù)ID所組成的鏈表

同時(shí),事務(wù)修改字段時(shí),在修改原來的值的時(shí)候,會(huì)標(biāo)注當(dāng)前事務(wù)的ID,同時(shí)把舊的數(shù)據(jù)和舊的事務(wù)ID放到回滾段。

有了上述兩項(xiàng)操作,那么ReadView的作用就體現(xiàn)出來了,即Select語句讀取:

  1. 擁 有大于最小活躍事務(wù)ID的、當(dāng)前非活躍事務(wù)中事務(wù)ID最大的 事務(wù)ID的 數(shù)據(jù)
  2. 再組織一下語言,即通過ReadView找到最大的非活躍事務(wù),取得它的事務(wù)ID,再去表中或者其回滾段中,尋找擁有這個(gè)事務(wù)ID的數(shù)據(jù)。

同時(shí),任何小于“最小的活躍事務(wù)的事務(wù)ID”的數(shù)據(jù)都可以被回收,因?yàn)樗鼈冊(cè)僖膊粫?huì)被讀取到。

因此可以發(fā)現(xiàn),READ?COMMITTED、REPEATABLE READ這兩個(gè)級(jí)別的差別,就在于ReadView的創(chuàng)建時(shí)機(jī)。前者再語句開始時(shí)創(chuàng)建ReadView,語句結(jié)束后Drop;后者在事務(wù)開始時(shí)創(chuàng)建,事務(wù)提交后Drop。即可實(shí)現(xiàn)其功能。

要注意的是,即便對(duì)于READ?COMMITTED級(jí)別,如果語句執(zhí)行過程中又有新的事務(wù)提交,select還是看不到的(極端情況)。

ReadView的存儲(chǔ)結(jié)構(gòu),或者是更深入的研究,可以去看前述的PPT,不再重復(fù)。

其實(shí)還分享了關(guān)于回滾段、回滾方式,MySQL的X-commit二段提交,對(duì)B+Tree的一些操作,感覺寫字還是有點(diǎn)兒蒼白,況且
Jeremy Cole和何登成的blog和PPT都要詳細(xì)、優(yōu)雅的多,推薦有興趣的同學(xué)去看看。

zp8497586rq

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

InnoDB中的B+Tree和MVCC

InnoDB中的B+Tree和MVCC:之前做了個(gè)InnoDB的分享,主要是關(guān)于InnoDB中B+Tree的結(jié)構(gòu)和MVCC的實(shí)現(xiàn)。 paper writing services PPT:BpTree_MVCC 下面把PPT內(nèi)容稍微整理一下。 首先是B+Tree,下面給出InnoDB中B+Tree的結(jié)構(gòu)(via) 有如下特點(diǎn): 尋道次數(shù)固定,且次數(shù)少(因
推薦度:
標(biāo)簽: 中的 in 之前
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产日韩一区二区三区在线播放 | 美日韩在线 | 欧美区一区 | 国产成人精品综合久久久 | 国产成人一区二区三区免费观看 | 欧美日韩中字 | 久久无码精品一区二区三区 | 亚洲综合影院 | 日韩欧美中文 | 日本不卡在线观看 | 午夜精品视频在线观看 | 亚洲综合欧美在线 | 亚洲欧美国产精品 | 五月婷婷综合网 | 欧美成人免费高清二区三区 | 久久精品国产亚洲a不卡 | 高清不卡一区 | 欧美福利一区 | 欧美特黄一区二区三区 | 日韩在线视频精品 | 男女全黄一级带免费 | 欧美成人高清在线视频大全 | 欧美高清第一页 | 一区二区三区中文字幕 | 欧美日韩性视频在线 | 国产一区二区三区成人久久片 | 国产福利视精品永久免费 | 日韩免费视频网站 | 毛片一级免费 | 日韩精品a在线视频 | 欧美精品亚洲精品日韩专区va | 中文字幕综合 | 欧美精品第一区 | 国产三级91 | 国产精品亚洲片在线观看不卡 | 日韩色网 | 看全色黄大色大片免费久久 | 国产a免费视频 | 婷婷综合久久中文字幕蜜桃三电影 | 精品日韩一区 | 国产精品久久久久久一区二区三区 |