數(shù)據(jù)庫的事務(wù)隔離級別

一.事務(wù)

事務(wù)是應(yīng)用程序中一系列嚴密的操作焰薄,所有操作必須成功完成拿诸,否則在每個操作中所做的所做的所有更改都會被撤銷,也就是事務(wù)具有原子性塞茅,一個事務(wù)中的一系列的操作要么全部成功亩码,要么一個都不做。

事務(wù)的結(jié)束有兩種凡桥,當事務(wù)中的所有操作步驟全部成功執(zhí)行時蟀伸,事務(wù)提交,如果其中一個步驟失敗缅刽,將發(fā)生回滾操作啊掏,撤銷到事務(wù)開始之前的操作

二.事務(wù)的四個特性

事務(wù)具有四個特性:原子性,一致性衰猛,隔離性迟蜜,持久性,這四個特性簡稱為ACID特性啡省。

1.原子性:事務(wù)是數(shù)據(jù)庫的最小的邏輯工作單位娜睛,事務(wù)中包含的各種操作髓霞,要么都做,要么都不做畦戒。

2.一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變成另一個一致性狀態(tài)方库,因此數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果時,就說數(shù)據(jù)庫處于一致性狀態(tài)障斋,如果數(shù)據(jù)庫運行中發(fā)生故障纵潦,有些事務(wù)尚未完成就被迫中斷,這些尚未完成的事務(wù)對數(shù)據(jù)庫所做的修改已經(jīng)有一部分寫入數(shù)據(jù)庫垃环,導(dǎo)致數(shù)據(jù)庫處于一種不正確的狀態(tài)邀层,或者說不一致的狀態(tài)。

3.隔離性:一個事務(wù)執(zhí)行時是不能被其他事務(wù)干擾遂庄,即一個事務(wù)內(nèi)部的操作和數(shù)據(jù)對其他并發(fā)的事務(wù)是隔離的寥院,并發(fā)執(zhí)行的事務(wù)之間不能干擾

4.持久性:一個事務(wù)一旦提交,他對數(shù)據(jù)的改變就是永久性的涛目,其他的操作或者故障不應(yīng)該對其結(jié)果有影響秸谢。

事務(wù)的隔離級別

讀未提交(Read uncommitted)

就是指一個事務(wù)可以讀取到另外一個事務(wù)沒有提交的事務(wù)。

事例:老板要給程序員發(fā)工資泌绣,程序員的工資是3.6萬/月钮追。但是發(fā)工資時老板不小心按錯了數(shù)字,按成3.9萬/月阿迈,該錢已經(jīng)打到程序員的戶口元媚,但是事務(wù)還沒有提交,就在這時苗沧,程序員去查看自己這個月的工資刊棕,發(fā)現(xiàn)比往常多了3千元,以為漲工資了非常高興待逞。但是老板及時發(fā)現(xiàn)了不對甥角,馬上回滾差點就提交了的事務(wù),將數(shù)字改成3.6萬再提交识樱。

分析:實際程序員這個月的工資還是3.6萬嗤无,但是程序員看到的是3.9萬。他看到的是老板還沒提交事務(wù)時的數(shù)據(jù)怜庸。這就是臟讀

三.事務(wù)的隔離級別

讀已提交(Read committed)

讀提交当犯,顧名思義,就是一個事務(wù)要等另一個事務(wù)提交后才能讀取數(shù)據(jù)割疾。

事例:程序員拿著信用卡去享受生活(卡里當然是只有3.6萬)嚎卫,當他買單時(程序員事務(wù)開啟),收費系統(tǒng)事先檢測到他的卡里有3.6萬宏榕,就在這個時候M刂睢侵佃!程序員的妻子要把錢全部轉(zhuǎn)出充當家用,并提交奠支。當收費系統(tǒng)準備扣款時馋辈,再檢測卡里的金額,發(fā)現(xiàn)已經(jīng)沒錢了(第二次檢測金額當然要等待妻子轉(zhuǎn)出金額事務(wù)提交完)胚宦。程序員就會很郁悶首有,明明卡里是有錢的…
分析:這就是讀提交,若有事務(wù)對數(shù)據(jù)進行更新(UPDATE)操作時枢劝,讀操作事務(wù)要等待這個更新操作事務(wù)提交后才能讀取數(shù)據(jù),可以解決臟讀問題卜壕。但在這個事例中您旁,出現(xiàn)了一個事務(wù)范圍內(nèi)兩個相同的查詢卻返回了不同數(shù)據(jù),這就是不可重復(fù)讀轴捎。

可重復(fù)讀(Repeatable read)

重復(fù)讀鹤盒,就是在開始讀取數(shù)據(jù)(事務(wù)開啟)時,不再允許修改操作侦副。

事例:程序員拿著信用卡去享受生活(卡里當然是只有3.6萬)侦锯,當他買單時(事務(wù)開啟,不允許其他事務(wù)的UPDATE修改操作)秦驯,收費系統(tǒng)事先檢測到他的卡里有3.6萬尺碰。這個時候他的妻子不能轉(zhuǎn)出金額了。接下來收費系統(tǒng)就可以扣款了译隘。

分析:重復(fù)讀可以解決不可重復(fù)讀問題亲桥。寫到這里,應(yīng)該明白的一點就是固耘,不可重復(fù)讀對應(yīng)的是修改题篷,即UPDATE操作。但是可能還會有幻讀問題厅目。因為幻讀問題對應(yīng)的是插入INSERT操作番枚,而不是UPDATE操作。

串行化(Serializable)

事例:程序員某一天去消費损敷,花了2千元葫笼,然后他的妻子去查看他今天的消費記錄(全表掃描FTS,妻子事務(wù)開啟)嗤锉,看到確實是花了2千元渔欢,就在這個時候,程序員花了1萬買了一部電腦瘟忱,即新增INSERT了一條消費記錄奥额,并提交苫幢。當妻子打印程序員的消費記錄清單時(妻子事務(wù)提交),發(fā)現(xiàn)花了1.2萬元垫挨,似乎出現(xiàn)了幻覺韩肝,這就是幻讀。

Serializable 是最高的事務(wù)隔離級別九榔,在該級別下哀峻,事務(wù)串行化順序執(zhí)行,可以避免臟讀哲泊、不可重復(fù)讀與幻讀剩蟀。但是這種事務(wù)隔離級別效率低下,比較耗數(shù)據(jù)庫性能切威,一般不使用育特。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市先朦,隨后出現(xiàn)的幾起案子缰冤,更是在濱河造成了極大的恐慌,老刑警劉巖喳魏,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棉浸,死亡現(xiàn)場離奇詭異,居然都是意外死亡刺彩,警方通過查閱死者的電腦和手機迷郑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迂苛,“玉大人三热,你說我怎么就攤上這事∪茫” “怎么了就漾?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長念搬。 經(jīng)常有香客問我抑堡,道長,這世上最難降的妖魔是什么朗徊? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任首妖,我火速辦了婚禮,結(jié)果婚禮上爷恳,老公的妹妹穿的比我還像新娘有缆。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布棚壁。 她就那樣靜靜地躺著杯矩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袖外。 梳的紋絲不亂的頭發(fā)上史隆,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天另假,我揣著相機與錄音养葵,去河邊找鬼这弧。 笑死蜈亩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的弃甥。 我是一名探鬼主播缝左,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼当娱,長吁一口氣:“原來是場噩夢啊……” “哼颖杏!你這毒婦竟也來了纯陨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤留储,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咙轩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體获讳,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年活喊,在試婚紗的時候發(fā)現(xiàn)自己被綠了丐膝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡钾菊,死狀恐怖帅矗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煞烫,我是刑警寧澤浑此,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站滞详,受9級特大地震影響凛俱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜料饥,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一蒲犬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岸啡,春花似錦原叮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽擂送。三九已至,卻和暖如春达布,著一層夾襖步出監(jiān)牢的瞬間团甲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工躺苦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匹厘,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓脐区,卻偏偏與公主長得像愈诚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牛隅,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

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