黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java面試題:數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別

Java面試題:數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別

更新時(shí)間:2019-12-03 09:44:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3109次

 

  數(shù)據(jù)庫(kù)事務(wù)隔離分為4個(gè)級(jí)別,由低到高依次是ReadUncommitted(讀未提交)、Readcommitted(讀提交)、Repeatableread(可重復(fù)讀)、Serializable(序列化)。這四個(gè)級(jí)別可逐步解決臟讀、重復(fù)讀、幻讀的問(wèn)題。

image.png 

首先來(lái)看一下臟讀、重復(fù)讀、幻讀的定義。

  臟讀

  所謂臟讀,就是指事務(wù)A讀到了事務(wù)B還沒(méi)有提交的數(shù)據(jù),但事務(wù)B又進(jìn)行了回滾,產(chǎn)生了臟數(shù)據(jù)。

  不可重復(fù)

  不可重復(fù)讀是指在對(duì)于數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù),一個(gè)事務(wù)范圍內(nèi)多次查詢卻返回了不同的數(shù)據(jù)值,這是由于在查詢間隔,被另一個(gè)事務(wù)修改并提交了。

  例如事務(wù)A在讀取某一數(shù)據(jù),而事務(wù)B立馬修改了這個(gè)數(shù)據(jù)并且提交事務(wù)給數(shù)據(jù)庫(kù),事務(wù)A再次讀取該數(shù)據(jù)就得到了不同的結(jié)果,發(fā)送了不可重復(fù)讀。

  不可重復(fù)讀和臟讀的區(qū)別是,臟讀是某一事務(wù)讀取了另一個(gè)事務(wù)未提交的臟數(shù)據(jù),而不可重復(fù)讀則是讀取了前一事務(wù)提交的數(shù)據(jù)。

  幻讀

  幻讀是指在一個(gè)事務(wù)的兩次查詢中數(shù)據(jù)筆數(shù)不一致,例如有一個(gè)事務(wù)A查詢了幾列(Row)數(shù)據(jù),而另一個(gè)事務(wù)B卻在此時(shí)插入了新的幾列數(shù)據(jù),先前的事務(wù)A在接下來(lái)的查詢中,就會(huì)發(fā)現(xiàn)有幾列數(shù)據(jù)是它先前所沒(méi)有的。

ReadUncommitted(讀未提交)

  如果一個(gè)事務(wù)已經(jīng)開(kāi)始寫(xiě)數(shù)據(jù),則另外一個(gè)事務(wù)則不允許同時(shí)進(jìn)行寫(xiě)操作,但允許其他事務(wù)讀此行數(shù)據(jù)。該隔離級(jí)別可以通過(guò)“排他鎖”實(shí)現(xiàn)。避免了更新丟失,卻可能出現(xiàn)臟讀。也就是說(shuō)事務(wù)A讀取到了事務(wù)B未提交的數(shù)據(jù)。

Readcommitted(讀提交)

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

  該隔離級(jí)別避免了臟讀,但是卻可能出現(xiàn)不可重復(fù)讀。事務(wù)A事先讀取了數(shù)據(jù),事務(wù)B緊接了更新了數(shù)據(jù),并提交了事務(wù),而事務(wù)A再次讀取該數(shù)據(jù)時(shí),數(shù)據(jù)已經(jīng)發(fā)生了改變。

Repeatableread(可重復(fù)讀)

  讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫(xiě)事務(wù)(但允許讀事務(wù)),寫(xiě)事務(wù)則禁止任何其他事務(wù)。

  避免了不可重復(fù)讀取和臟讀,但是有時(shí)可能出現(xiàn)幻讀。這可以通過(guò)“共享鎖”和“排他鎖”實(shí)現(xiàn)。

Serializable(序列化)

  提供嚴(yán)格的事務(wù)隔離。它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,不能并發(fā)執(zhí)行。如果僅僅通過(guò)“行級(jí)鎖”是無(wú)法實(shí)現(xiàn)事務(wù)序列化的,必須通過(guò)其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢操作的事務(wù)訪問(wèn)到。

  序列化是最高的事務(wù)隔離級(jí)別,同時(shí)代價(jià)也花費(fèi)最高,性能很低,一般很少使用,在該級(jí)別下,事務(wù)順序執(zhí)行,不僅可以避免臟讀、不可重復(fù)讀,還避免了幻像讀。

  隔離級(jí)別越高,越能保證數(shù)據(jù)的完整性和一致性,但是對(duì)并發(fā)性能的影響也越大。對(duì)于多數(shù)應(yīng)用程序,可以優(yōu)先考慮把數(shù)據(jù)庫(kù)系統(tǒng)的隔離級(jí)別設(shè)為ReadCommitted。它能夠避免臟讀取,而且具有較好的并發(fā)性能。盡管它會(huì)導(dǎo)致不可重復(fù)讀、幻讀和第二類丟失更新這些并發(fā)問(wèn)題,在可能出現(xiàn)這類問(wèn)題的個(gè)別場(chǎng)合,可以由應(yīng)用程序采用悲觀鎖或樂(lè)觀鎖來(lái)控制。

  大多數(shù)數(shù)據(jù)庫(kù)的默認(rèn)級(jí)別就是Readcommitted,比如SqlServer,Oracle。

MySQL的默認(rèn)隔離級(jí)別就是Repeatableread。

       以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java面試題:數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

相關(guān)推薦

最新最全java面試題及答案(初級(jí)到高級(jí))

史上最全的中高級(jí)JAVA工程師面試題及答案匯總

Java高級(jí)開(kāi)發(fā)工程師面試題

2019史上最全java面試題題庫(kù)大全800題

哪有資深java工程師面試題

 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品免费tv久久久久久久 | 亚洲精品午夜国产va久久 | 欧美福利视频网 | 一级国产在线观看高清 | 亚洲欧美韩日 | 性欧美4khdxxxx | 久色视频在线 | 亚洲欧美日韩精品香蕉 | 一本大道道无香蕉综合在线 | 精品视频一区二区 | 久久人人爽人人爽人人小说 | 国产亚洲新品一区二区 | 国产男女猛烈无遮档免费视频网站 | 女厕所vedioxxxx | 中文字幕第38页永久乱码 | 精品视频在线视频 | 福利体验区 | 亚洲人体一区 | 午夜网站在线 | 欧美精品亚洲网站 | 成人影院天天5g天天爽无毒影院 | 97人人澡人人爽人人爱 | 亚洲一区二区影院 | 一二三四视频社区在线中文1 | 国产在线一区二区三区在线 | 免费看国产一级片 | 91桃色视频在线观看 | 狂野欧美性猛交xxxx免费按摩 | 国产成人精品999在线观看 | 国产1区2区3区在线观看 | 性欧美xxx 不卡视频 | 手机看片1024久久精品你懂的 | 五月婷婷中文 | 国产农村乱色xxxx | 欧美性xxx极品hd高清 | 欧美三级在线 | 国产一区二区精品久 | 欧美性高清视频免费看www | 天天做天天玩天天爽天天 | 日韩a级片在线观看 | 人人鲁免费播放视频人人香蕉 |