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

資訊專欄INFORMATION COLUMN

三言兩語RR與RC那點事

IT那活兒 / 2279人閱讀
三言兩語RR與RC那點事

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!


01


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


02


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

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

  • 快照n之后,其他事務x做的提交,這里包含快照n之前啟動在n之后完成提交的事務也包含快照n之后新啟動完成提交的事務,對于快照n而言在其之后提交的事務都屬于未來事務,同樣不可見。

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

也就是說對于可重復讀級別而言快照以事務開始時間為準,讀已提交級別下每條SQL語句啟動時重新獲取當前數(shù)據(jù)庫的快照以便獲取最新已提交的事務情況。


03


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

04


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

END



本文作者:胡 杰

本文來源:IT那活兒(上海新炬王翦團隊)

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

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129486.html

相關文章

  • 容器化管理平臺存儲點事

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

    xcold 評論0 收藏0
  • 關于localStorage面試的點事

    摘要:已經超出本地存儲限定大小可進行超出限定大小之后的操作,如下面可以先清除記錄,再次保存面試官一波素質三連對于只是會使用的同學來說,肯定是不得其解的。 最近面試的時候關于html5API總會被問到localStorage的問題, 對于一般的問題很簡單,無非就是 localStorage、sessionStorage和cookie這三個客戶端緩存的區(qū)別 localStorage的API,g...

    timger 評論0 收藏0
  • 關于性能優(yōu)化的點事——函數(shù)節(jié)流

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

    khlbat 評論0 收藏0
  • js函數(shù)點事

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

    nanchen2251 評論0 收藏0
  • 移動端鍵盤和光標的兼容點事

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

    XboxYan 評論0 收藏0
  • 移動端鍵盤和光標的兼容點事

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

    Kerr1Gan 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<