事務(wù)特性ACID及隔離級(jí)別的個(gè)人理解

事務(wù)特性 ACID

  • 原子性 (atomicity)
    原子(atom)指化學(xué)反應(yīng)不可再分的基本微粒,原子在化學(xué)反應(yīng)中不可分割。
    這里形容事務(wù)是一個(gè)整體不可再分和媳,整體要么都成功要么都失敗砚婆。
  • 一致性 (consistency)
    事務(wù)執(zhí)行前后罩抗,數(shù)據(jù)應(yīng)保持一致滨嘱。
    可以借助轉(zhuǎn)賬場(chǎng)景理解:轉(zhuǎn)賬前后峰鄙,雙方總錢(qián)數(shù)不會(huì)發(fā)生改變。
  • 隔離性 (isolation)
    執(zhí)行過(guò)程中的事務(wù)之間互不可見(jiàn)太雨,互不影響吟榴。
    不同標(biāo)準(zhǔn)的隔離級(jí)別詳見(jiàn)下方隔離級(jí)別
  • 持久性 (durability)
    事務(wù)成功提交后造成的影響是永久的,不可回滾囊扳。

隔離級(jí)別

隔離級(jí)別是不同事務(wù)執(zhí)行過(guò)程中吩翻,相互之間的可見(jiàn)性
目前有四個(gè)隔離級(jí)別標(biāo)準(zhǔn),分別是:

  • 讀未提交 (Read Uncommited)
    最低隔離級(jí)別锥咸,未提交的事務(wù)所作修改能被其他執(zhí)行中的事務(wù)可見(jiàn)狭瞎,破壞了隔離性。此級(jí)別會(huì)造成臟讀

    臟讀:臟讀又稱無(wú)效數(shù)據(jù)的讀出搏予,是指在數(shù)據(jù)庫(kù)訪問(wèn)中熊锭,事務(wù)T1將某一值修改,然后事務(wù)T2讀取該值雪侥,此后T1因?yàn)槟撤N原因撤銷(xiāo)對(duì)該值的修改碗殷,這就導(dǎo)致了T2所讀取到的數(shù)據(jù)是無(wú)效的,值得注意的是速缨,臟讀一般是針對(duì)于update操作的锌妻。

    一種更易理解的說(shuō)法是:臟讀就是指當(dāng)一個(gè)事務(wù)正在訪問(wèn)數(shù)據(jù),并且對(duì)數(shù)據(jù)進(jìn)行了修改旬牲,而這種修改還沒(méi)有提交到數(shù)據(jù)庫(kù)中仿粹,這時(shí),另外一個(gè)事務(wù)也訪問(wèn)這個(gè)數(shù)據(jù)原茅,然后使用了這個(gè)數(shù)據(jù)吭历。因?yàn)檫@個(gè)數(shù)據(jù)是還沒(méi)有提交的數(shù)據(jù),那么另外一個(gè)事務(wù)讀到的這個(gè)數(shù)據(jù)是臟數(shù)據(jù)擂橘,依據(jù)臟數(shù)據(jù)所做的操作可能是不正確的毒涧。

  • 讀已提交 (Read Commited)
    是Oracle的默認(rèn)隔離級(jí)別,已提交的事務(wù)所作修改能被其他執(zhí)行中的事務(wù)可見(jiàn)贝室,破壞了一致性。此級(jí)別會(huì)造成不可重復(fù)讀

    不可重復(fù)讀:是指在數(shù)據(jù)庫(kù)訪問(wèn)中仿吞,一個(gè)事務(wù)范圍內(nèi)兩個(gè)相同的查詢卻返回了不同數(shù)據(jù)滑频。這是由于查詢時(shí)系統(tǒng)中其他事務(wù)修改的提交而引起的。比如事務(wù)T1讀取某一數(shù)據(jù)唤冈,事務(wù)T2讀取并修改了該數(shù)據(jù)峡迷,T1為了對(duì)讀取值進(jìn)行檢驗(yàn)而再次讀取該數(shù)據(jù),便得到了不同的結(jié)果。

    一種更易理解的說(shuō)法是:在一個(gè)事務(wù)內(nèi)讶坯,多次讀同一個(gè)數(shù)據(jù)晌纫。在這個(gè)事務(wù)還沒(méi)有結(jié)束時(shí)肃叶,另一個(gè)事務(wù)也訪問(wèn)該同一數(shù)據(jù)并修改數(shù)據(jù)。那么琉预,在第一個(gè)事務(wù)的兩次讀數(shù)據(jù)之間。由于另一個(gè)事務(wù)的修改蒿褂,那么第一個(gè)事務(wù)兩次讀到的數(shù)據(jù)可能不一樣圆米,這樣就發(fā)生了在一個(gè)事務(wù)內(nèi)兩次讀到的數(shù)據(jù)是不一樣的,因此稱為不可重復(fù)讀啄栓,即原始讀取不可重復(fù)娄帖。

  • 可重復(fù)讀 (Repeatable Read)
    MySQL的默認(rèn)隔離級(jí)別,事務(wù)執(zhí)行過(guò)程中昙楚,查詢到的數(shù)據(jù)保證一致近速,即已提交的事務(wù)所作修改不能被其他執(zhí)行中的事務(wù)可見(jiàn)。但對(duì)于insert的數(shù)據(jù)無(wú)效堪旧,因此會(huì)造成幻讀 削葱,事務(wù)提交前后多了數(shù)據(jù),就像出現(xiàn)了“幻覺(jué)”

    幻讀是指當(dāng)事務(wù)不是獨(dú)立執(zhí)行時(shí)發(fā)生的一種現(xiàn)象崎场,例如第一個(gè)事務(wù)對(duì)一個(gè)表中的數(shù)據(jù)進(jìn)行了修改佩耳,比如這種修改涉及到表中的“全部數(shù)據(jù)行”。同時(shí)谭跨,第二個(gè)事務(wù)也修改這個(gè)表中的數(shù)據(jù)干厚,這種修改是向表中插入“一行新數(shù)據(jù)”。那么螃宙,以后就會(huì)發(fā)生操作第一個(gè)事務(wù)的用戶發(fā)現(xiàn)表中還存在沒(méi)有修改的數(shù)據(jù)行蛮瞄,就好象發(fā)生了幻覺(jué)一樣.一般解決幻讀的方法是增加范圍鎖RangeS,鎖定檢索范圍為只讀谆扎,這樣就避免了幻讀挂捅。

  • 串行化 (serializable)
    最高級(jí)別,事務(wù)之間完全串行化執(zhí)行(慢慢排隊(duì)執(zhí)行吧~)堂湖,毫無(wú)并發(fā)可言闲先,因此性能較低!但可避免幻讀現(xiàn)象

下方貼圖一張无蜂,較為形象的表達(dá)了不同隔離級(jí)別解決的問(wèn)題:

image.png
image.png

本文供個(gè)人理解使用伺糠,如有失誤歡迎指出~!感謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末斥季,一起剝皮案震驚了整個(gè)濱河市训桶,隨后出現(xiàn)的幾起案子累驮,更是在濱河造成了極大的恐慌,老刑警劉巖舵揭,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谤专,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡午绳,警方通過(guò)查閱死者的電腦和手機(jī)置侍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)箱叁,“玉大人墅垮,你說(shuō)我怎么就攤上這事「” “怎么了算色?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)螟够。 經(jīng)常有香客問(wèn)我灾梦,道長(zhǎng),這世上最難降的妖魔是什么妓笙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任若河,我火速辦了婚禮,結(jié)果婚禮上寞宫,老公的妹妹穿的比我還像新娘萧福。我一直安慰自己,他們只是感情好辈赋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布鲫忍。 她就那樣靜靜地躺著,像睡著了一般钥屈。 火紅的嫁衣襯著肌膚如雪悟民。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天篷就,我揣著相機(jī)與錄音射亏,去河邊找鬼。 笑死竭业,一個(gè)胖子當(dāng)著我的面吹牛智润,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播未辆,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼做鹰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鼎姐?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炕桨,沒(méi)想到半個(gè)月后饭尝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡献宫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年钥平,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姊途。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涉瘾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捷兰,到底是詐尸還是另有隱情立叛,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布贡茅,位于F島的核電站秘蛇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏顶考。R本人自食惡果不足惜赁还,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驹沿。 院中可真熱鬧艘策,春花似錦、人聲如沸渊季。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梭域。三九已至斑举,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間病涨,已是汗流浹背富玷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留既穆,地道東北人赎懦。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像幻工,于是被迫代替她去往敵國(guó)和親励两。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348