mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游

mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游

ID:8966370

大?。?11.50 KB

頁(yè)數(shù):14頁(yè)

時(shí)間:2018-04-13

mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游_第1頁(yè)
mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游_第2頁(yè)
mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游_第3頁(yè)
mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游_第4頁(yè)
mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游_第5頁(yè)
資源描述:

《mysql數(shù)據(jù)庫(kù)innodb存儲(chǔ)引擎log漫游》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、00–UndoLogUndoLog是為了實(shí)現(xiàn)事務(wù)的原子性,在MySQL數(shù)據(jù)庫(kù)InnoDB存儲(chǔ)引擎中,還用UndoLog來(lái)實(shí)現(xiàn)多版本并發(fā)控制(簡(jiǎn)稱:MVCC)。-事務(wù)的原子性(Atomicity)??事務(wù)中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在執(zhí)行的過(guò)程中發(fā)生??了錯(cuò)誤,要回滾(Rollback)到事務(wù)開(kāi)始前的狀態(tài),就像這個(gè)事務(wù)從來(lái)沒(méi)有執(zhí)行過(guò)。-原理?UndoLog的原理很簡(jiǎn)單,為了滿足事務(wù)的原子性,在操作任何數(shù)據(jù)之前,首先將數(shù)據(jù)備份到一個(gè)地方?(這個(gè)存儲(chǔ)數(shù)據(jù)備份的地方

2、稱為UndoLog)。然后進(jìn)行數(shù)據(jù)的修改。如果出現(xiàn)了錯(cuò)誤或者用戶執(zhí)行了?ROLLBACK語(yǔ)句,系統(tǒng)可以利用UndoLog中的備份將數(shù)據(jù)恢復(fù)到事務(wù)開(kāi)始之前的狀態(tài)。除了可以保證事務(wù)的原子性,UndoLog也可以用來(lái)輔助完成事務(wù)的持久化。-事務(wù)的持久性(Durability)?事務(wù)一旦完成,該事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的所有修改都會(huì)持久的保存到數(shù)據(jù)庫(kù)中。為了保證持久性,數(shù)據(jù)庫(kù)?系統(tǒng)會(huì)將修改后的數(shù)據(jù)完全的記錄到持久的存儲(chǔ)上。-用UndoLog實(shí)現(xiàn)原子性和持久化的事務(wù)的簡(jiǎn)化過(guò)程?假設(shè)有A、B兩個(gè)數(shù)據(jù),值分別為1,2。

3、?A.事務(wù)開(kāi)始.?B.記錄A=1到undolog.?C.修改A=3.?D.記錄B=2到undolog.?E.修改B=4.?F.將undolog寫(xiě)到磁盤(pán)。?G.將數(shù)據(jù)寫(xiě)到磁盤(pán)。?H.事務(wù)提交?這里有一個(gè)隱含的前提條件:‘?dāng)?shù)據(jù)都是先讀到內(nèi)存中,然后修改內(nèi)存中的數(shù)據(jù),最后將數(shù)據(jù)寫(xiě)回磁盤(pán)’。?之所以能同時(shí)保證原子性和持久化,是因?yàn)橐韵绿攸c(diǎn):?A.更新數(shù)據(jù)前記錄Undolog。?B.為了保證持久性,必須將數(shù)據(jù)在事務(wù)提交前寫(xiě)到磁盤(pán)。只要事務(wù)成功提交,數(shù)據(jù)必然已經(jīng)持久化。?C.Undolog必須先于數(shù)據(jù)持久化到

4、磁盤(pán)。如果在G,H之間系統(tǒng)崩潰,undolog是完整的,???可以用來(lái)回滾事務(wù)。?D.如果在A-F之間系統(tǒng)崩潰,因?yàn)閿?shù)據(jù)沒(méi)有持久化到磁盤(pán)。所以磁盤(pán)上的數(shù)據(jù)還是保持在事務(wù)開(kāi)始前的狀態(tài)。缺陷:每個(gè)事務(wù)提交前將數(shù)據(jù)和UndoLog寫(xiě)入磁盤(pán),這樣會(huì)導(dǎo)致大量的磁盤(pán)IO,因此性能很低。如果能夠?qū)?shù)據(jù)緩存一段時(shí)間,就能減少I(mǎi)O提高性能。但是這樣就會(huì)喪失事務(wù)的持久性。因此引入了另外一種機(jī)制來(lái)實(shí)現(xiàn)持久化,即RedoLog.01–RedoLog-原理?和UndoLog相反,RedoLog記錄的是新數(shù)據(jù)的備份。在事務(wù)提

5、交前,只要將RedoLog持久化即可,?不需要將數(shù)據(jù)持久化。當(dāng)系統(tǒng)崩潰時(shí),雖然數(shù)據(jù)沒(méi)有持久化,但是RedoLog已經(jīng)持久化。系統(tǒng)可以根據(jù)?RedoLog的內(nèi)容,將所有數(shù)據(jù)恢復(fù)到最新的狀態(tài)。-Undo+Redo事務(wù)的簡(jiǎn)化過(guò)程?假設(shè)有A、B兩個(gè)數(shù)據(jù),值分別為1,2.?A.事務(wù)開(kāi)始.?B.記錄A=1到undolog.?C.修改A=3.?D.記錄A=3到redolog.?E.記錄B=2到undolog.?F.修改B=4.?G.記錄B=4到redolog.?H.將redolog寫(xiě)入磁盤(pán)。?I.事務(wù)提交-Un

6、do+Redo事務(wù)的特點(diǎn)?A.為了保證持久性,必須在事務(wù)提交前將RedoLog持久化。?B.數(shù)據(jù)不需要在事務(wù)提交前寫(xiě)入磁盤(pán),而是緩存在內(nèi)存中。?C.RedoLog保證事務(wù)的持久性。?D.UndoLog保證事務(wù)的原子性。?E.有一個(gè)隱含的特點(diǎn),數(shù)據(jù)必須要晚于redolog寫(xiě)入持久存儲(chǔ)。-IO性能?Undo+Redo的設(shè)計(jì)主要考慮的是提升IO性能。雖說(shuō)通過(guò)緩存數(shù)據(jù),減少了寫(xiě)數(shù)據(jù)的IO.?但是卻引入了新的IO,即寫(xiě)RedoLog的IO。如果RedoLog的IO性能不好,就不能起到提高性能的目的。?為了保

7、證RedoLog能夠有比較好的IO性能,InnoDB的RedoLog的設(shè)計(jì)有以下幾個(gè)特點(diǎn):?A.盡量保持RedoLog存儲(chǔ)在一段連續(xù)的空間上。因此在系統(tǒng)第一次啟動(dòng)時(shí)就會(huì)將日志文件的空間完全分配。???以順序追加的方式記錄RedoLog,通過(guò)順序IO來(lái)改善性能。?B.批量寫(xiě)入日志。日志并不是直接寫(xiě)入文件,而是先寫(xiě)入redologbuffer.當(dāng)需要將日志刷新到磁盤(pán)時(shí)???(如事務(wù)提交),將許多日志一起寫(xiě)入磁盤(pán).?C.并發(fā)的事務(wù)共享RedoLog的存儲(chǔ)空間,它們的RedoLog按語(yǔ)句的執(zhí)行順序,依次交

8、替的記錄在一起,???以減少日志占用的空間。例如,RedoLog中的記錄內(nèi)容可能是這樣的:???記錄1:???記錄2:???記錄3:???記錄4:???記錄5:?D.因?yàn)镃的原因,當(dāng)一個(gè)事務(wù)將RedoLog寫(xiě)入磁盤(pán)時(shí),也會(huì)將其他未提交的事務(wù)的日志寫(xiě)入磁盤(pán)。?E.RedoLog上只進(jìn)行順序追加的操作,當(dāng)一個(gè)事務(wù)需要回滾時(shí),它的RedoLog記錄也

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。