當(dāng)前讀與快照讀

前言

在這里記錄一下一個(gè)博客,覺(jué)得寫的很好 http://hedengcheng.com/?p=771 恬砂,

概念

快照讀

??讀取的是記錄數(shù)據(jù)的可見(jiàn)版本(可能是過(guò)期的數(shù)據(jù))峦剔,不用加鎖

當(dāng)前讀

??讀取的是記錄數(shù)據(jù)的最新版本霹陡,并且當(dāng)前讀返回的記錄都會(huì)加上鎖皆尔,保證其他事務(wù)不會(huì)再并發(fā)的修改這條記錄
??概念說(shuō)的比較虛姚建,也不好理解矫俺,接著舉一個(gè)例子吧,假設(shè)你開(kāi)啟了兩個(gè)事務(wù)掸冤,分別是A和B厘托,這里有個(gè)張表,user表稿湿,里面有四條數(shù)據(jù)


image.png

1铅匹、select快照讀(照片)

??當(dāng)你執(zhí)行select *之后,在A與B事務(wù)中都會(huì)返回4條一樣的數(shù)據(jù)饺藤,這是不用想的包斑,當(dāng)執(zhí)行select的時(shí)候,innodb默認(rèn)會(huì)執(zhí)行快照讀涕俗,相當(dāng)于就是給你目前的狀態(tài)找了一張照片罗丰,以后執(zhí)行select 的時(shí)候就會(huì)返回當(dāng)前照片里面的數(shù)據(jù),當(dāng)其他事務(wù)提交了也對(duì)你不造成影響再姑,和你沒(méi)關(guān)系萌抵,這就實(shí)現(xiàn)了可重復(fù)讀了,那這個(gè)照片是什么時(shí)候生成的呢元镀?不是開(kāi)啟事務(wù)的時(shí)候绍填,是當(dāng)你第一次執(zhí)行select的時(shí)候,也就是說(shuō)栖疑,當(dāng)A開(kāi)啟了事務(wù)讨永,然后沒(méi)有執(zhí)行任何操作,這時(shí)候B insert了一條數(shù)據(jù)然后commit,這時(shí)候A執(zhí)行 select蔽挠,那么返回的數(shù)據(jù)中就會(huì)有B添加的那條數(shù)據(jù)......之后無(wú)論再有其他事務(wù)commit都沒(méi)有關(guān)系住闯,因?yàn)檎掌呀?jīng)生成了,而且不會(huì)再生成了澳淑,以后都會(huì)參考這張照片比原。

2、update杠巡、insert量窘、delete 當(dāng)前讀

??當(dāng)你執(zhí)行這幾個(gè)操作的時(shí)候默認(rèn)會(huì)執(zhí)行當(dāng)前讀,也就是會(huì)讀取最新的記錄氢拥,也就是別的事務(wù)提交的數(shù)據(jù)你也可以看到蚌铜,這樣很好理解啊锨侯,假設(shè)你要update一個(gè)記錄,另一個(gè)事務(wù)已經(jīng)delete這條數(shù)據(jù)并且commit了冬殃,這樣不是會(huì)產(chǎn)生沖突嗎囚痴,所以你update的時(shí)候肯定要知道最新的信息啊。

??我在這里介紹一下update的過(guò)程吧审葬,首先會(huì)執(zhí)行當(dāng)前讀深滚,然后把返回的數(shù)據(jù)加鎖,之后執(zhí)行update涣觉。加鎖是防止別的事務(wù)在這個(gè)時(shí)候?qū)@條記錄做什么痴荐,默認(rèn)加的是排他鎖,也就是你讀都不可以官册,這樣就可以保證數(shù)據(jù)不會(huì)出錯(cuò)了生兆。但注意一點(diǎn),就算你這里加了寫鎖膝宁,別的事務(wù)也還是能訪問(wèn)的鸦难,是不是很奇怪?數(shù)據(jù)庫(kù)采取了一致性非鎖定讀昆汹,別的事務(wù)會(huì)去讀取一個(gè)快照數(shù)據(jù)明刷。
??innodb默認(rèn)隔離級(jí)別是RR, 是通過(guò)MVVC來(lái)實(shí)現(xiàn)了满粗,讀方式有兩種辈末,執(zhí)行select的時(shí)候是快照讀,其余是當(dāng)前讀映皆,所以挤聘,mvvc不能根本上解決幻讀的情況

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市捅彻,隨后出現(xiàn)的幾起案子组去,更是在濱河造成了極大的恐慌,老刑警劉巖步淹,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件从隆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缭裆,警方通過(guò)查閱死者的電腦和手機(jī)键闺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)澈驼,“玉大人辛燥,你說(shuō)我怎么就攤上這事。” “怎么了挎塌?”我有些...
    開(kāi)封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵徘六,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我榴都,道長(zhǎng)待锈,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任缭贡,我火速辦了婚禮炉擅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阳惹。我一直安慰自己,他們只是感情好眶俩,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布莹汤。 她就那樣靜靜地躺著,像睡著了一般颠印。 火紅的嫁衣襯著肌膚如雪纲岭。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天线罕,我揣著相機(jī)與錄音止潮,去河邊找鬼。 笑死钞楼,一個(gè)胖子當(dāng)著我的面吹牛喇闸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播询件,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼燃乍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了宛琅?” 一聲冷哼從身側(cè)響起刻蟹,我...
    開(kāi)封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘿辟,沒(méi)想到半個(gè)月后舆瘪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡红伦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年英古,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片色建。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哺呜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情某残,我是刑警寧澤国撵,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站玻墅,受9級(jí)特大地震影響介牙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澳厢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一环础、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剩拢,春花似錦线得、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至办素,卻和暖如春角雷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背性穿。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工勺三, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人需曾。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓吗坚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胯舷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刻蚯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1背景1 1.1MVCC:Snapshot Read vs Current Read2 1.2Cluster In...
    簡(jiǎn)小鹿奔跑ing閱讀 4,165評(píng)論 1 50
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,947評(píng)論 2 89
  • MySQL 的加鎖處理分析 MySQL/InnoDB的加鎖分析,一直是一個(gè)比較困難的話題桑嘶。我在工作過(guò)程中炊汹,經(jīng)常會(huì)有...
    meng_philip123閱讀 798評(píng)論 0 12
  • 今天寶寶12個(gè)周了,發(fā)現(xiàn)妊娠紋已經(jīng)出來(lái)了逃顶,喊某只打招呼讨便,某只摸了一下,喊小幺兒以政,我一笑霸褒,他又喊小幺姑,乖乖聽(tīng)話盈蛮,乖...
    深巷小池子閱讀 217評(píng)論 0 4
  • 小螞蟻非非在一座繁華的城市里流浪废菱,這個(gè)城市的標(biāo)志是隨處可見(jiàn)的大型塔吊。人們總是不停地建造,又不停地摧毀殊轴,然后再建造...
    小菲子閱讀 277評(píng)論 0 2