mysql數(shù)據(jù)庫意向鎖意義

mysql數(shù)據(jù)庫在innodb引擎下會出現(xiàn)表鎖定和行鎖定并存情況额划,下面我們來分析一下這種場景下數(shù)據(jù)庫的加鎖機(jī)制和處理方式柬讨。

1、在MyISAM 引擎中只有表鎖巍虫,

LOCK TABLE my_tabl_name READ;? 用讀鎖鎖表吱韭,會阻塞其他事務(wù)修改表數(shù)據(jù)吆豹。

LOCK TABLE my_table_name WRITe; 用寫鎖鎖表,會阻塞其他事務(wù)讀和寫理盆。

默認(rèn)情況下讀請求會加讀鎖痘煤,寫請求寫鎖,并且是鎖定整個(gè)表猿规,因此大量讀的業(yè)務(wù)這種引擎效率很高衷快。

2、在Innodb引擎又支持行鎖坎拐,行鎖分為共享鎖烦磁,一個(gè)事務(wù)對一行的共享只讀鎖养匈。排它鎖哼勇,一個(gè)事務(wù)對一行的排他讀寫鎖都伪。

3、這兩中鎖定類型的鎖共存的問題

考慮這個(gè)例子:

事務(wù)A鎖住了表中的一行积担,讓這一行只能讀陨晶,不能寫。

之后帝璧,事務(wù)B申請整個(gè)表的寫鎖先誉。

如果事務(wù)B申請成功,那么理論上它就能修改表中的任意一行的烁,這與A持有的行鎖是沖突的褐耳。

數(shù)據(jù)庫需要避免這種沖突,就是說要讓B的申請被阻塞渴庆,直到A釋放了行鎖铃芦。

數(shù)據(jù)庫要怎么判斷這個(gè)沖突呢?

step1:判斷表是否已被其他事務(wù)用表鎖鎖表

step2:判斷表中的每一行是否已被行鎖鎖住襟雷。

注意step2中通過遍歷查詢刃滓,這樣的判斷方法效率實(shí)在不高,因?yàn)樾枰闅v整個(gè)表耸弄。

于是就有了意向鎖咧虎。

在意向鎖存在的情況下,事務(wù)A必須先申請表的意向共享鎖计呈,成功后再申請一行的行鎖砰诵。

在意向鎖存在的情況下,上面的判斷可以改成

step1:不變

step2:發(fā)現(xiàn)表上有意向共享鎖捌显,說明表中有些行被共享行鎖鎖住了胧砰,因此,事務(wù)B申請表的寫鎖會被阻塞苇瓣。

最終結(jié)論:

(1)申請意向鎖的動作是數(shù)據(jù)庫完成的尉间,就是說,事務(wù)A申請一行的行鎖的時(shí)候击罪,數(shù)據(jù)庫會自動先開始申請表的意向鎖哲嘲,不需要我們程序員使用代碼來申請。

(2)IX媳禁,IS是表級鎖眠副,不會和行級的X,S鎖發(fā)生沖突竣稽。只會和表級的X囱怕,S發(fā)生沖突

行級別的X和S按照普通的共享霍弹、排他規(guī)則即可。所以之前的示例中第2步不會沖突娃弓,只要寫操作不是同一行典格,就不會發(fā)生沖突。

備注:? IX? 意向排它鎖台丛,IS 意向讀鎖耍缴,X 排它鎖,S 共享鎖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挽霉,一起剝皮案震驚了整個(gè)濱河市防嗡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侠坎,老刑警劉巖蚁趁,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異实胸,居然都是意外死亡他嫡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門童芹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涮瞻,“玉大人,你說我怎么就攤上這事假褪∈鹧剩” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵生音,是天一觀的道長宁否。 經(jīng)常有香客問我,道長缀遍,這世上最難降的妖魔是什么慕匠? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮域醇,結(jié)果婚禮上台谊,老公的妹妹穿的比我還像新娘。我一直安慰自己譬挚,他們只是感情好锅铅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著减宣,像睡著了一般盐须。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上漆腌,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天贼邓,我揣著相機(jī)與錄音阶冈,去河邊找鬼。 笑死塑径,一個(gè)胖子當(dāng)著我的面吹牛女坑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晓勇,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼堂飞,長吁一口氣:“原來是場噩夢啊……” “哼灌旧!你這毒婦竟也來了绑咱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤枢泰,失蹤者是張志新(化名)和其女友劉穎描融,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衡蚂,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窿克,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毛甲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片年叮。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖玻募,靈堂內(nèi)的尸體忽然破棺而出只损,到底是詐尸還是另有隱情,我是刑警寧澤七咧,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布跃惫,位于F島的核電站,受9級特大地震影響艾栋,放射性物質(zhì)發(fā)生泄漏爆存。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一蝗砾、第九天 我趴在偏房一處隱蔽的房頂上張望先较。 院中可真熱鬧,春花似錦悼粮、人聲如沸闲勺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽霉翔。三九已至,卻和暖如春苞笨,著一層夾襖步出監(jiān)牢的瞬間债朵,已是汗流浹背子眶。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留序芦,地道東北人臭杰。 一個(gè)月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像谚中,于是被迫代替她去往敵國和親渴杆。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

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