最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

數(shù)據(jù)隔離四個(gè)級(jí)別分別是哪些

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 08:38:37
文檔

數(shù)據(jù)隔離四個(gè)級(jí)別分別是哪些

數(shù)據(jù)隔離四個(gè)級(jí)別分別是哪些:數(shù)據(jù)庫(kù)的四個(gè)級(jí)別分為:讀取未提交內(nèi)容,讀取提交內(nèi)容,可重讀以及可串行化。但隔離級(jí)別也會(huì)造成臟讀,不可重復(fù)讀以及幻讀等問(wèn)題【推薦課程:MySQL教程】數(shù)據(jù)庫(kù)隔離的四個(gè)級(jí)別分別為:Read Uncommitted(讀取未提交內(nèi)容)在該隔離級(jí)別,所有事務(wù)都可以看到其
推薦度:
導(dǎo)讀數(shù)據(jù)隔離四個(gè)級(jí)別分別是哪些:數(shù)據(jù)庫(kù)的四個(gè)級(jí)別分為:讀取未提交內(nèi)容,讀取提交內(nèi)容,可重讀以及可串行化。但隔離級(jí)別也會(huì)造成臟讀,不可重復(fù)讀以及幻讀等問(wèn)題【推薦課程:MySQL教程】數(shù)據(jù)庫(kù)隔離的四個(gè)級(jí)別分別為:Read Uncommitted(讀取未提交內(nèi)容)在該隔離級(jí)別,所有事務(wù)都可以看到其
數(shù)據(jù)庫(kù)的四個(gè)級(jí)別分為:讀取未提交內(nèi)容,讀取提交內(nèi)容,可重讀以及可串行化。但隔離級(jí)別也會(huì)造成臟讀,不可重復(fù)讀以及幻讀等問(wèn)題

【推薦課程:MySQL教程】

數(shù)據(jù)庫(kù)隔離的四個(gè)級(jí)別分別為:

Read Uncommitted(讀取未提交內(nèi)容)

在該隔離級(jí)別,所有事務(wù)都可以看到其他未提交事務(wù)的執(zhí)行結(jié)果。本隔離級(jí)別很少用于實(shí)際應(yīng)用,因?yàn)樗男阅芤膊槐绕渌?jí)別好多少。讀取未提交的數(shù)據(jù),也被稱(chēng)之為臟讀(Dirty Read)。

Read Committed(讀取提交內(nèi)容)

這是大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)的默認(rèn)隔離級(jí)別(但不是MySQL默認(rèn)的)。它滿(mǎn)足了隔離的簡(jiǎn)單定義:一個(gè)事務(wù)只能看見(jiàn)已經(jīng)提交事務(wù)所做的改變。這種隔離級(jí)別 也支持所謂的不可重復(fù)讀(Nonrepeatable Read),因?yàn)橥皇聞?wù)的其他實(shí)例在該實(shí)例處理其間可能會(huì)有新的commit,所以同一select可能返回不同結(jié)果。

Repeatable Read(可重讀)

這是MySQL的默認(rèn)事務(wù)隔離級(jí)別,它確保同一事務(wù)的多個(gè)實(shí)例在并發(fā)讀取數(shù)據(jù)時(shí),會(huì)看到同樣的數(shù)據(jù)行。不過(guò)理論上,這會(huì)導(dǎo)致另一個(gè)棘手的問(wèn)題:幻讀 (Phantom Read)。簡(jiǎn)單的說(shuō),幻讀指當(dāng)用戶(hù)讀取某一范圍的數(shù)據(jù)行時(shí),另一個(gè)事務(wù)又在該范圍內(nèi)插入了新行,當(dāng)用戶(hù)再讀取該范圍的數(shù)據(jù)行時(shí),會(huì)發(fā)現(xiàn)有新的“幻影” 行。InnoDB和Falcon存儲(chǔ)引擎通過(guò)多版本并發(fā)控制(MVCC,Multiversion Concurrency Control)機(jī)制解決了該問(wèn)題。

Serializable(可串行化)

這是最高的隔離級(jí)別,它通過(guò)強(qiáng)制事務(wù)排序,使之不可能相互沖突,從而解決幻讀問(wèn)題。簡(jiǎn)言之,它是在每個(gè)讀的數(shù)據(jù)行上加上共享鎖。在這個(gè)級(jí)別,可能導(dǎo)致大量的超時(shí)現(xiàn)象和鎖競(jìng)爭(zhēng)。

隔離級(jí)別所產(chǎn)生的問(wèn)題

這四種隔離級(jí)別采取不同的鎖類(lèi)型來(lái)實(shí)現(xiàn),若讀取的是同一個(gè)數(shù)據(jù)的話(huà),就容易發(fā)生問(wèn)題。例如:

臟讀(Drity Read):

某個(gè)事務(wù)已更新一份數(shù)據(jù),另一個(gè)事務(wù)在此時(shí)讀取了同一份數(shù)據(jù),由于某些原因,前一個(gè)RollBack了操作,則后一個(gè)事務(wù)所讀取的數(shù)據(jù)就會(huì)是不正確的。

不可重復(fù)讀(Non-repeatable read):

在一個(gè)事務(wù)的兩次查詢(xún)之中數(shù)據(jù)不一致,這可能是兩次查詢(xún)過(guò)程中間插入了一個(gè)事務(wù)更新的原有的數(shù)據(jù)。

幻讀(Phantom Read):

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

在MySQL中,實(shí)現(xiàn)了這四種隔離級(jí)別,分別有可能產(chǎn)生問(wèn)題如下所示:

隔離級(jí)別臟讀不可重復(fù)讀
幻讀
讀未提交
讀已提交X
可重復(fù)讀XX
可串行化XXX

總結(jié):

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

數(shù)據(jù)隔離四個(gè)級(jí)別分別是哪些

數(shù)據(jù)隔離四個(gè)級(jí)別分別是哪些:數(shù)據(jù)庫(kù)的四個(gè)級(jí)別分為:讀取未提交內(nèi)容,讀取提交內(nèi)容,可重讀以及可串行化。但隔離級(jí)別也會(huì)造成臟讀,不可重復(fù)讀以及幻讀等問(wèn)題【推薦課程:MySQL教程】數(shù)據(jù)庫(kù)隔離的四個(gè)級(jí)別分別為:Read Uncommitted(讀取未提交內(nèi)容)在該隔離級(jí)別,所有事務(wù)都可以看到其
推薦度:
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top