久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL數(shù)據(jù)中有哪些數(shù)據(jù)隔離級別

147次閱讀
沒有評論

共計(jì) 1344 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開通

丸趣 TV 小編給大家分享一下 MySQL 數(shù)據(jù)中有哪些數(shù)據(jù)隔離級別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

                                                            數(shù)據(jù)庫的四個(gè)級別分為:讀取未提交內(nèi)容,讀取提交內(nèi)容,可重讀以及可串行化。但隔離級別也會(huì)造成臟讀,不可重復(fù)讀以及幻讀等問題

MySQL 數(shù)據(jù)中有哪些數(shù)據(jù)隔離級別

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

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

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

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

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

Repeatable Read(可重讀)

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

Serializable(可串行化)

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

隔離級別所產(chǎn)生的問題

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

臟讀(Drity Read):

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

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

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

幻讀(Phantom Read):

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

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

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

以上是“MySQL 數(shù)據(jù)中有哪些數(shù)據(jù)隔離級別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

向 AI 問一下細(xì)節(jié)

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-18發(fā)表,共計(jì)1344字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 西贡区| 黄龙县| 柳江县| 屯门区| 宜兰市| 阿克| 调兵山市| 抚顺县| 依安县| 湟源县| 西安市| 胶南市| 调兵山市| 大厂| 遂平县| 寻甸| 肇源县| 景泰县| 丹棱县| 沛县| 大竹县| 军事| 绥滨县| 大宁县| 霍山县| 卢氏县| 改则县| 图们市| 建宁县| 洪湖市| 丹棱县| 建始县| 安仁县| 冷水江市| 枞阳县| 广饶县| 航空| 东莞市| 瑞安市| 廊坊市| 广西|