MySQL面試題 | 附答案解析(九)

1.?對MySQL的鎖了解嗎

當(dāng)數(shù)據(jù)庫有并發(fā)事務(wù)的時候,可能會產(chǎn)生數(shù)據(jù)的不一致痪伦,這時候需要一些機制來保證訪問的次序侄榴,鎖機制就是這樣的一個機制。

就像酒店的房間网沾,如果大家隨意進出癞蚕,就會出現(xiàn)多人搶奪同一個房間的情況,而在房間上裝上鎖辉哥,申請到鑰匙的人才可以入住并且將房間鎖起來桦山,其他人只有等他使用完畢才可以再次使用攒射。

2. 隔離級別與鎖的關(guān)系

在Read Uncommitted級別下,讀取數(shù)據(jù)不需要加共享鎖恒水,這樣就不會跟被修改的數(shù)據(jù)上的排他鎖沖突

在Read Committed級別下会放,讀操作需要加共享鎖,但是在語句執(zhí)行完以后釋放共享鎖钉凌;

在Repeatable Read級別下鸦概,讀操作需要加共享鎖,但是在事務(wù)提交之前并不釋放共享鎖甩骏,也就是必須等待事務(wù)執(zhí)行完畢以后才釋放共享鎖。

SERIALIZABLE 是限制性最強的隔離級別先慷,因為該級別鎖定整個范圍的鍵饮笛,并一直持有鎖,直到事務(wù)完成论熙。

3. 按照鎖的粒度分?jǐn)?shù)據(jù)庫鎖有哪些福青?鎖機制與InnoDB鎖算法

在關(guān)系型數(shù)據(jù)庫中,可以按照鎖的粒度把數(shù)據(jù)庫鎖分為行級鎖(INNODB引擎)脓诡、表級鎖(MYISAM引擎)和頁級鎖(BDB引擎 )无午。

MyISAM和InnoDB存儲引擎使用的鎖:

MyISAM采用表級鎖(table-level locking)。

InnoDB支持行級鎖(row-level locking)和表級鎖祝谚,默認(rèn)為行級鎖

行級鎖宪迟,表級鎖和頁級鎖對比

行級鎖 行級鎖是Mysql中鎖定粒度最細(xì)的一種鎖,表示只針對當(dāng)前操作的行進行加鎖交惯。行級鎖能大大減少數(shù)據(jù)庫操作的沖突次泽。其加鎖粒度最小,但加鎖的開銷也最大席爽。行級鎖分為共享鎖 和 排他鎖意荤。

特點:開銷大,加鎖慢只锻;會出現(xiàn)死鎖玖像;鎖定粒度最小,發(fā)生鎖沖突的概率最低齐饮,并發(fā)度也最高捐寥。

表級鎖 表級鎖是MySQL中鎖定粒度最大的一種鎖,表示對當(dāng)前操作的整張表加鎖祖驱,它實現(xiàn)簡單上真,資源消耗較少,被大部分MySQL引擎支持羹膳。最常使用的MYISAM與INNODB都支持表級鎖定睡互。表級鎖定分為表共享讀鎖(共享鎖)與表獨占寫鎖(排他鎖)。

特點:開銷小,加鎖快就珠;不會出現(xiàn)死鎖寇壳;鎖定粒度大,發(fā)出鎖沖突的概率最高妻怎,并發(fā)度最低壳炎。

頁級鎖 頁級鎖是MySQL中鎖定粒度介于行級鎖和表級鎖中間的一種鎖。表級鎖速度快逼侦,但沖突多匿辩,行級沖突少,但速度慢榛丢。所以取了折衷的頁級铲球,一次鎖定相鄰的一組記錄。

特點:開銷和加鎖時間界于表鎖和行鎖之間晰赞;會出現(xiàn)死鎖稼病;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般

4. 從鎖的類別上分MySQL都有哪些鎖呢掖鱼?像上面那樣子進行鎖定豈不是有點阻礙并發(fā)效率了

從鎖的類別上來講然走,有共享鎖和排他鎖。

共享鎖: 又叫做讀鎖戏挡。當(dāng)用戶要進行數(shù)據(jù)的讀取時芍瑞,對數(shù)據(jù)加上共享鎖。共享鎖可以同時加上多個褐墅。

排他鎖: 又叫做寫鎖啄巧。當(dāng)用戶要進行數(shù)據(jù)的寫入時,對數(shù)據(jù)加上排他鎖掌栅。排他鎖只可以加一個秩仆,他和其他的排他鎖,共享鎖都相斥猾封。

用上面的例子來說就是用戶的行為有兩種澄耍,一種是來看房,多個用戶一起看房是可以接受的晌缘。一種是真正的入住一晚齐莲,在這期間,無論是想入住的還是想看房的都不可以磷箕。

鎖的粒度取決于具體的存儲引擎选酗,InnoDB實現(xiàn)了行級鎖,頁級鎖岳枷,表級鎖芒填。

他們的加鎖開銷從大到小呜叫,并發(fā)能力也是從大到小。

最后殿衰,小編分類整理了許多java進階學(xué)習(xí)材料和BAT面試給熱愛IT行業(yè)的你朱庆,如果需要資料的請轉(zhuǎn)發(fā)此文章后再私聊小編回復(fù)【java】就能領(lǐng)取2019年java進階學(xué)習(xí)資料和BAT面試題以及《Effective Java》(第3版)電子版書籍。也可以加群:712263501領(lǐng)取海量學(xué)習(xí)資料進行學(xué)習(xí)闷祥。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娱颊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凯砍,更是在濱河造成了極大的恐慌箱硕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悟衩,死亡現(xiàn)場離奇詭異剧罩,居然都是意外死亡,警方通過查閱死者的電腦和手機局待,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菱属,“玉大人钳榨,你說我怎么就攤上這事∨γ牛” “怎么了薛耻?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赏陵。 經(jīng)常有香客問我饼齿,道長,這世上最難降的妖魔是什么蝙搔? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任缕溉,我火速辦了婚禮,結(jié)果婚禮上吃型,老公的妹妹穿的比我還像新娘证鸥。我一直安慰自己,他們只是感情好勤晚,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布枉层。 她就那樣靜靜地躺著,像睡著了一般赐写。 火紅的嫁衣襯著肌膚如雪鸟蜡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天挺邀,我揣著相機與錄音揉忘,去河邊找鬼跳座。 笑死,一個胖子當(dāng)著我的面吹牛癌淮,可吹牛的內(nèi)容都是我干的躺坟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乳蓄,長吁一口氣:“原來是場噩夢啊……” “哼咪橙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虚倒,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤美侦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后魂奥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菠剩,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年耻煤,在試婚紗的時候發(fā)現(xiàn)自己被綠了具壮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡哈蝇,死狀恐怖棺妓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炮赦,我是刑警寧澤怜跑,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站吠勘,受9級特大地震影響性芬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剧防,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一植锉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧峭拘,春花似錦汽煮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宵凌,卻和暖如春鞋囊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瞎惫。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工溜腐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留译株,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓挺益,卻偏偏與公主長得像歉糜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子望众,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

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