MySQL隔離級(jí)別

臟讀

數(shù)據(jù)庫隔離級(jí)別為讀未提交的時(shí)候,可能發(fā)生臟讀。讀未提交指當(dāng)會(huì)話A的數(shù)據(jù)庫操作尚未commit時(shí)望薄,會(huì)話B可以讀取到這個(gè)未提交的數(shù)據(jù)。而此時(shí)如果會(huì)話A因?yàn)槟承┰騬ollback了呼畸,那么會(huì)話B讀取的數(shù)據(jù)就是錯(cuò)誤的痕支,也就是臟讀。當(dāng)隔離級(jí)別提高到讀已提交時(shí)蛮原,則可以避免臟讀卧须。

不可重復(fù)讀

簡單的理解就是多次讀取結(jié)果不一致,在會(huì)話A中多次相同的操作讀取的數(shù)據(jù)是不一致的儒陨。比如花嘶,在會(huì)話A的兩次讀取操作直接,會(huì)話B對(duì)此數(shù)據(jù)進(jìn)行了提交蹦漠,那么會(huì)話A第一次讀取的是之前的數(shù)據(jù)椭员,第二次讀取的是之后的數(shù)據(jù)。通過隔離級(jí)別可重復(fù)讀來解決這個(gè)問題笛园。

幻讀

不可重復(fù)讀的特殊場(chǎng)景隘击,不可重復(fù)讀主要是指在讀取某條記錄時(shí)發(fā)生,而幻讀指的是范圍研铆。比如埋同,會(huì)話A第一查詢年齡大于18的人,發(fā)現(xiàn)沒有數(shù)據(jù)棵红,但當(dāng)?shù)诙芜M(jìn)行查詢時(shí)凶赁,卻查詢到了數(shù)據(jù)。在串行化的隔離級(jí)別下窄赋,不會(huì)發(fā)生幻讀哟冬。

數(shù)據(jù)庫鎖

  • 排它鎖

又稱為X 鎖,寫鎖忆绰。一個(gè)事務(wù)對(duì)數(shù)據(jù)對(duì)象 O 加了 排他鎖浩峡,就可以對(duì) O 進(jìn)行讀取和更新。加鎖期間其它事務(wù)不能對(duì) O 加任何鎖错敢。

  • 共享鎖

又稱為S 鎖翰灾,讀鎖缕粹。一個(gè)事務(wù)對(duì)數(shù)據(jù)對(duì)象O加了共享鎖,可以對(duì)O進(jìn)行讀取操作纸淮,但是不能進(jìn)行更新操作平斩。加鎖期間其它事務(wù)能對(duì)O 加 共享鎖,但是不能加排他鎖咽块。

隔離級(jí)別

  • 讀未提交

如果一個(gè)事務(wù)已經(jīng)開始寫操作绘面,那么其他事務(wù)則不允許同時(shí)進(jìn)行寫操作,但允許其他事務(wù)讀此行數(shù)據(jù)侈沪。

  1. 寫操作不加鎖揭璃;
  2. 讀操作不加鎖;
  • 讀已提交

讀取數(shù)據(jù)的事務(wù)允許其他事務(wù)繼續(xù)訪問該行數(shù)據(jù)亭罪,但是未提交的寫事務(wù)將會(huì)禁止其他事務(wù)訪問該行瘦馍。

  1. 寫操作加排他鎖,保持到事務(wù)結(jié)束应役;
  2. 讀操作加鎖共享鎖情组,此次查詢結(jié)束后立即釋放共享鎖,保證讀取的數(shù)據(jù)都是已提交的數(shù)據(jù)箩祥。
  • 可重復(fù)讀

讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫事務(wù)(但允許讀事務(wù))院崇,寫事務(wù)則禁止任何其他事務(wù)。保證了在同一個(gè)事務(wù)中多次讀取同樣數(shù)據(jù)的結(jié)果是一樣的袍祖。

1.寫操作加排他鎖亚脆;
2.讀操作加共享鎖,保持到事務(wù)結(jié)束盲泛。不妨礙其他事務(wù)讀寂屏,但其它事務(wù)無法修改這些數(shù)據(jù)俊扭,無法鎖住insert的數(shù)據(jù)(造成幻讀);
3.InnoDB中,SELECT单寂、UPDATE菲茬、DELETE操作的不可重復(fù)讀問題可以通過MVCC(多版本并發(fā)控制)來解決坚弱,但是INSERT操作的幻讀問題需要通過MVCC + Next-Key Locks 來解決盛正。

  • 串行化

極大的降低數(shù)據(jù)庫的并發(fā)能力。讀用讀鎖蚁孔,寫用寫鎖奶赔,讀鎖和寫鎖互斥

  1. 寫操作加排他鎖
  2. 讀操作加排他鎖杠氢;

總結(jié)

  • 在InnoDB引擎中站刑,對(duì)于索引的掃描,不僅鎖住掃描到的索引鼻百,而且還鎖住這些索引覆蓋的范圍绞旅,因此這個(gè)范圍是內(nèi)插入數(shù)據(jù)是不允許的摆尝。
  • 使用select @@tx_isolation;查詢數(shù)據(jù)庫的隔離級(jí)別。
  • 隔離級(jí)別越高(讀未提交->讀已提交->可重復(fù)讀->串行化)因悲,越能保證數(shù)據(jù)的完整性和一致性堕汞,對(duì)并發(fā)性能的影響也會(huì)越大。
  • Mysql默認(rèn)的級(jí)別是可重復(fù)讀晃琳,優(yōu)先考慮把數(shù)據(jù)庫系統(tǒng)的隔離級(jí)別設(shè)為讀已提交讯检。

轉(zhuǎn)載鏈接:https://juejin.im/post/5e7c16ff6fb9a0095426c21a

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卫旱,隨后出現(xiàn)的幾起案子视哑,更是在濱河造成了極大的恐慌,老刑警劉巖誊涯,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒜撮,居然都是意外死亡暴构,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門段磨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來取逾,“玉大人,你說我怎么就攤上這事苹支±纾” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵债蜜,是天一觀的道長晴埂。 經(jīng)常有香客問我,道長寻定,這世上最難降的妖魔是什么儒洛? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮狼速,結(jié)果婚禮上琅锻,老公的妹妹穿的比我還像新娘。我一直安慰自己向胡,他們只是感情好恼蓬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著僵芹,像睡著了一般处硬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拇派,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天郁油,我揣著相機(jī)與錄音本股,去河邊找鬼。 笑死桐腌,一個(gè)胖子當(dāng)著我的面吹牛拄显,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播案站,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼躬审,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蟆盐?” 一聲冷哼從身側(cè)響起承边,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎石挂,沒想到半個(gè)月后博助,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痹愚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年富岳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拯腮。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窖式,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出动壤,到底是詐尸還是另有隱情萝喘,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布琼懊,位于F島的核電站阁簸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哼丈。R本人自食惡果不足惜强窖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望削祈。 院中可真熱鬧翅溺,春花似錦、人聲如沸髓抑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吨拍。三九已至褪猛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間羹饰,已是汗流浹背伊滋。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工碳却, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笑旺。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓昼浦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親筒主。 傳聞我的和親對(duì)象是個(gè)殘疾皇子关噪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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