国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

三言兩語(yǔ)RR與RC那點(diǎn)事

IT那活兒 / 2271人閱讀
三言兩語(yǔ)RR與RC那點(diǎn)事

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!


01


從事數(shù)據(jù)庫(kù)開發(fā)和運(yùn)維的人員或多或少都了解過(guò)關(guān)于《可重復(fù)讀和讀提交》這2種隔離級(jí)別,今天我們就來(lái)研究一下。


02


一般來(lái)說(shuō)事務(wù)存在4大特性ACID(原子性、一致性、隔離性、持久性),這里我們主要來(lái)說(shuō)一下隔離性。
當(dāng)多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),數(shù)據(jù)庫(kù)為了保證事務(wù)之間的隔離性便引入了隔離級(jí)別的概念。SQL標(biāo)準(zhǔn)將事務(wù)隔離級(jí)別分為讀未提交(read uncinnutted),讀已提交(read committed/RC),可重復(fù)度(repeatable read/RR),串行化(serializable)。
如下:

表格中讀未提交與串行化比較簡(jiǎn)單,也不常用。目前主流數(shù)據(jù)庫(kù)采用的主要是讀已提交和可重復(fù)度。
我們舉個(gè)例子來(lái)描述一下:
2種模式下T3時(shí)刻分別獲取到了不同的值。
分別來(lái)看一下,在T3時(shí)刻,可重復(fù)讀級(jí)別下,雖然T2時(shí)刻其他事務(wù)已提交變更,但是事務(wù)任然以啟動(dòng)時(shí)間T1為準(zhǔn),也就是查詢結(jié)果需要與T1保持一致,即T2事務(wù)屬于未來(lái)事務(wù),不可見。而在讀已提交級(jí)別下以當(dāng)前語(yǔ)句時(shí)刻為準(zhǔn),對(duì)于T3時(shí)刻而言,T2時(shí)刻屬于已提交事務(wù),即可獲取T2時(shí)刻已提交的變更。
這里我們可以發(fā)現(xiàn)2種隔離級(jí)別主要區(qū)別在于事務(wù)起點(diǎn)時(shí)刻的劃分,也可以稱為數(shù)據(jù)庫(kù)快照(簡(jiǎn)單理解就是數(shù)據(jù)庫(kù)某一時(shí)刻的全局事務(wù)狀態(tài))的劃分。
對(duì)于數(shù)據(jù)庫(kù)任意時(shí)刻的快照而言總是存在如下3種情況:
  • 對(duì)于快照n而言未提交的事務(wù)總是不可見。

  • 快照n之后,其他事務(wù)x做的提交,這里包含快照n之前啟動(dòng)在n之后完成提交的事務(wù)也包含快照n之后新啟動(dòng)完成提交的事務(wù),對(duì)于快照n而言在其之后提交的事務(wù)都屬于未來(lái)事務(wù),同樣不可見。

  • 快照之前已完成提交的事務(wù)才可見。

也就是說(shuō)對(duì)于可重復(fù)讀級(jí)別而言快照以事務(wù)開始時(shí)間為準(zhǔn),讀已提交級(jí)別下每條SQL語(yǔ)句啟動(dòng)時(shí)重新獲取當(dāng)前數(shù)據(jù)庫(kù)的快照以便獲取最新已提交的事務(wù)情況。


03


這里可能有些同學(xué)會(huì)有疑問,在RR級(jí)別下,T3時(shí)刻將T減1是不是意味著T2時(shí)刻的事務(wù)變更會(huì)丟失?
如下:
針對(duì)這個(gè)問題,數(shù)據(jù)庫(kù)引擎當(dāng)然沒有那么小白,這里適用一條新的規(guī)則, 發(fā)生DML時(shí),需要讀取已提交事務(wù)的最新值,這個(gè)讀一般稱為"當(dāng)前讀"(current read)。
案例中也就是T3發(fā)起set DML時(shí)需要獲取已提交的最新值也就是T=2后,再進(jìn)行運(yùn)算,這就不存在事務(wù)丟失的風(fēng)險(xiǎn)了,需要注意如果事務(wù)n進(jìn)行了修改但是沒有提交,這里事務(wù)1就會(huì)產(chǎn)生行鎖等待,這里我們就不再展開介紹了。

04


最后來(lái)總結(jié)一下這2種隔離級(jí)別的適用場(chǎng)景:
4.1 RC:適用于CRM類查詢相對(duì)較多,需要獲取最新值類系統(tǒng)。
查詢與修改7:1,8:1等等,注意具體參考實(shí)際系統(tǒng),并不絕對(duì)。
4.2 RR:適用于對(duì)賬類系統(tǒng),比如信用卡賬戶表與信用卡消費(fèi)明細(xì)表。
采取RC隔離級(jí)別時(shí),如果不將數(shù)據(jù)靜止化,對(duì)賬的事務(wù)周期內(nèi),賬戶表余額或明細(xì)表一直發(fā)生變更,那整個(gè)賬本永遠(yuǎn)也無(wú)法對(duì)賬一致。
另外比如mysqldump之類的邏輯備份,使用--single-transaction時(shí)自動(dòng)設(shè)置會(huì)話事務(wù)為RR,其不僅僅是備份出數(shù)據(jù),同樣需要保證數(shù)據(jù)與數(shù)據(jù)之間的邏輯一致性。

END



本文作者:胡 杰

本文來(lái)源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129486.html

相關(guān)文章

  • 容器化管理平臺(tái)存儲(chǔ)點(diǎn)事

    摘要:機(jī)器配置主機(jī)名地址說(shuō)明存儲(chǔ)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)測(cè)試掛載的機(jī)器格式化和掛載磁盤主要目的就是將磁盤格式化為,作為的底層存儲(chǔ)文件系統(tǒng)個(gè)節(jié)點(diǎn)都需要執(zhí)行注意這個(gè)示例是以作為數(shù)據(jù)磁盤。 以 Docker 為代表的容器技術(shù)在云計(jì)算領(lǐng)域正扮演著越來(lái)越重要的角色,甚至一度被認(rèn)為是虛擬化技術(shù)的替代品。企業(yè)級(jí)的容器應(yīng)用常常需要將重要的數(shù)據(jù)持久化,方便在不同容器間共享。為了能夠持久化數(shù)據(jù)以及共享容器間的數(shù)據(jù),Dock...

    xcold 評(píng)論0 收藏0
  • 關(guān)于localStorage面試的點(diǎn)事

    摘要:已經(jīng)超出本地存儲(chǔ)限定大小可進(jìn)行超出限定大小之后的操作,如下面可以先清除記錄,再次保存面試官一波素質(zhì)三連對(duì)于只是會(huì)使用的同學(xué)來(lái)說(shuō),肯定是不得其解的。 最近面試的時(shí)候關(guān)于html5API總會(huì)被問到localStorage的問題, 對(duì)于一般的問題很簡(jiǎn)單,無(wú)非就是 localStorage、sessionStorage和cookie這三個(gè)客戶端緩存的區(qū)別 localStorage的API,g...

    timger 評(píng)論0 收藏0
  • 關(guān)于性能優(yōu)化的點(diǎn)事——函數(shù)節(jié)流

    摘要:函數(shù)節(jié)流背景中的函數(shù)大多數(shù)情況下都是由用戶主動(dòng)調(diào)用觸發(fā)的除非是函數(shù)本身的實(shí)現(xiàn)不合理否則一般不會(huì)遇到跟性能相關(guān)的問題但在少數(shù)情況下函數(shù)的觸發(fā)不是由用戶直接控制的在這些場(chǎng)景下函數(shù)可能被非常頻繁調(diào)用而造成大的性能問題場(chǎng)景事件事件滾動(dòng)事件共同的特征 函數(shù)節(jié)流 背景 javascript中的函數(shù)大多數(shù)情況下都是由用戶主動(dòng)調(diào)用觸發(fā)的, 除非是函數(shù)本身的實(shí)現(xiàn)不合理, 否則一般不會(huì)遇到跟性能相關(guān)的問題...

    khlbat 評(píng)論0 收藏0
  • js函數(shù)點(diǎn)事

    摘要:在種函數(shù)實(shí)際上是對(duì)象,每個(gè)函數(shù)都是類型的實(shí)例。也就是說(shuō)一個(gè)函數(shù)可能會(huì)有多個(gè)名字。這就是我們平時(shí)所說(shuō)的函數(shù)聲明提升。函數(shù)的內(nèi)部屬性包括具體不再敘述了函數(shù)的屬性和方法函數(shù)有個(gè)屬性,和表示函數(shù)希望接收命名參數(shù)的個(gè)數(shù)。 要知道,在js中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),包含5種引用類型,分別是Object,data,Array,re請(qǐng)輸入代碼gExp,Function。今天我們就說(shuō)Function這種...

    nanchen2251 評(píng)論0 收藏0
  • 移動(dòng)端鍵盤和光標(biāo)的兼容點(diǎn)事

    摘要:解決方法如果使用頁(yè)面數(shù)據(jù)不超過(guò)一屏禁止?jié)L動(dòng),那么即使變成了頁(yè)面也不會(huì)有什么變化。 作者:@micky思 @wupq @yewq 在H5的開發(fā)中,個(gè)人的制作頁(yè)面布局習(xí)性不同,多多少少會(huì)產(chǎn)生在真機(jī)上input的光標(biāo)和鍵盤的彈出會(huì)出現(xiàn)的各種BUG,文中整理了部分遇到的問題,歡迎新增 ios移動(dòng)端輸入框上浮導(dǎo)致輸入位置偏移 問題原因:遮罩層定位為fixed,當(dāng)鍵盤彈起時(shí),ios11以及以下...

    XboxYan 評(píng)論0 收藏0
  • 移動(dòng)端鍵盤和光標(biāo)的兼容點(diǎn)事

    摘要:解決方法如果使用頁(yè)面數(shù)據(jù)不超過(guò)一屏禁止?jié)L動(dòng),那么即使變成了頁(yè)面也不會(huì)有什么變化。 作者:@micky思 @wupq @yewq 在H5的開發(fā)中,個(gè)人的制作頁(yè)面布局習(xí)性不同,多多少少會(huì)產(chǎn)生在真機(jī)上input的光標(biāo)和鍵盤的彈出會(huì)出現(xiàn)的各種BUG,文中整理了部分遇到的問題,歡迎新增 ios移動(dòng)端輸入框上浮導(dǎo)致輸入位置偏移 問題原因:遮罩層定位為fixed,當(dāng)鍵盤彈起時(shí),ios11以及以下...

    Kerr1Gan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<