深入理解mysql的四個(gè)隔離級(jí)別分別為(mysql的四種隔離級(jí)別)

    本文主要介紹理解mysql的四個(gè)隔離級(jí)別(mysql 四個(gè)隔離級(jí)別),下面一起看看理解mysql的四個(gè)隔離級(jí)別(mysql 四個(gè)隔離級(jí)別)相關(guān)資訊。
    首先,第一件事是什么事務(wù)是一個(gè)應(yīng)用中的一系列緊密操作,所有操作都必須成功完成,否則每個(gè)操作中的所有更改都將被撤銷,即事務(wù)是原子性的,事務(wù)中的一系列操作要么成功,要么不成功。一個(gè)交易有兩種結(jié)局。當(dāng)所有步驟都成功執(zhí)行時(shí),事務(wù)被提交。如果其中一個(gè)步驟失敗,將發(fā)生回滾操作,從撤銷到事務(wù)開始的操作將被撤銷。兩個(gè)。交易的酸易有四個(gè)特征:原子性、一致性、隔離性和持久性。這四種特性稱為短酸特性。1。原子性,事務(wù)是數(shù)據(jù)庫的邏輯單元,包含在事務(wù)業(yè)務(wù)中。2。一致性,事務(wù)執(zhí)行的結(jié)果必然是數(shù)據(jù)庫從一個(gè)一致性變成另一個(gè)一致性。所以當(dāng)數(shù)據(jù)庫只包含事務(wù)提交成功的結(jié)果時(shí),意味著數(shù)據(jù)庫處于一致狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)的運(yùn)行出現(xiàn)故障,對(duì)于這些未完成的事務(wù)中的一部分事務(wù)還沒有中斷,對(duì)數(shù)據(jù)庫的更改已經(jīng)寫入物理數(shù)據(jù)庫,處于不良狀態(tài)或不一致狀態(tài)。3、隔離。一個(gè)事務(wù)的執(zhí)行不受其他事務(wù)的干擾。也就是說,一個(gè)事務(wù)中使用的操作和數(shù)據(jù)是與其他并發(fā)事務(wù)隔離的,執(zhí)行的各種事務(wù)不能互相干擾。4。堅(jiān)持也叫永久。一旦事務(wù)被提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的更改應(yīng)該是永久的。后續(xù)操作或失敗不應(yīng)對(duì)執(zhí)行結(jié)果產(chǎn)生任何影響。第三,mysql 的四種隔離級(jí)別sql標(biāo)準(zhǔn)定義了四種類型的隔離級(jí)別,包括一些特定的規(guī)則來限制事務(wù)內(nèi)外可見和不可見的變化,而低級(jí)別的隔離級(jí)別通常支持更高的并發(fā)處理,系統(tǒng)開銷也更低。read uncommitted(讀取未提交的內(nèi)容)在這個(gè)隔離級(jí)別,所有事務(wù)都可以看到其他未提交事務(wù)的執(zhí)行結(jié)果。這種隔離級(jí)別在實(shí)際應(yīng)用中很少使用,因?yàn)樗男阅懿⒉槐绕渌?jí)別好。read commit(讀提交)這是大多數(shù)數(shù)據(jù)庫系統(tǒng)的默認(rèn)隔離級(jí)別(不是mysql的默認(rèn))。它滿足了隔離的簡單定義:事務(wù)只能看到提交給公司的變更。這個(gè)隔離級(jí)別還支持所謂的不可重復(fù)讀取。因?yàn)橥皇聞?wù)的其他實(shí)例在實(shí)例處理期間可能會(huì)有新的提交,所以同一選擇可能會(huì)返回不同的結(jié)果。可重復(fù)讀取(重讀)這是mysql默認(rèn)的事務(wù)隔離級(jí)別,這樣同一個(gè)事務(wù)的多個(gè)實(shí)例在讀取數(shù)據(jù)的同時(shí)可以看到同一個(gè)數(shù)據(jù)行,但理論上這可能會(huì)導(dǎo)致另一個(gè)棘手的問題:幻影讀取。簡單來說,魔讀,當(dāng)用戶讀取一系列數(shù)據(jù)行時(shí),在另一個(gè)事務(wù)中插入一個(gè)新行range。當(dāng)用戶讀取數(shù)據(jù)行時(shí),將會(huì)出現(xiàn)一個(gè)新的幻像行。在…里nodb和falcon存儲(chǔ)引擎通過多版本并發(fā)控制(mvcc)機(jī)制解決了這個(gè)問題。序列化(serialization)這是最高級(jí)別的隔離,這使得不可能通過強(qiáng)制事務(wù)相互來解決幻影問題。簡而言之,它是每個(gè)讀取數(shù)據(jù)線上的共享鎖。在這個(gè)級(jí)別,可能會(huì)導(dǎo)致大量超時(shí)和鎖爭用。這四個(gè)隔離級(jí)別是用不同的鎖類型實(shí)現(xiàn)的。如果讀取相同的數(shù)據(jù),很容易出現(xiàn)問題:臟讀(dirty reading):一個(gè)事務(wù)更新數(shù)據(jù),另一個(gè)事務(wù)讀取相同的數(shù)據(jù)。由于某些原因,上一個(gè)回滾操作和下一個(gè)office讀取的數(shù)據(jù)會(huì)不正確。can 不重復(fù)閱讀,可以 不重復(fù)。在事務(wù)的兩次查詢中,數(shù)據(jù)不一致。這可能是兩個(gè)查詢過程,其中插入事務(wù)更新原始數(shù)據(jù)。(幽靈閱讀)幽靈閱讀:兩次查詢中,事務(wù)數(shù)據(jù)個(gè)數(shù)不一致,比如事務(wù)查詢系列(行)數(shù)據(jù)和另一個(gè)事務(wù),但這時(shí)有新的數(shù)據(jù)進(jìn)入列,前一個(gè)事務(wù)在下一個(gè)查詢中,你會(huì)發(fā)現(xiàn)前幾列數(shù)據(jù)都沒有。在mysql中,實(shí)現(xiàn)了這四個(gè)隔離級(jí)別,可能出現(xiàn)的問題如下:4。測試mysql隔離級(jí)別接下來,我們將使用mysql 的客戶端程序測試這些隔離級(jí)別。測試數(shù)據(jù)庫是演示,表是測試;表格結(jié)構(gòu)是:兩個(gè)命令行客戶端是a和b;不斷改變a端的隔離等級(jí),修改b端的數(shù)據(jù)。(1)設(shè)置未提交讀取(uncommitted reading)的隔離級(jí)別。答:啟動(dòng)事務(wù),當(dāng)數(shù)據(jù)處于初始狀態(tài)時(shí)。b:啟動(dòng)事務(wù)并更新數(shù)據(jù),但是不要 不要犯錯(cuò)誤。答:再看一遍數(shù)據(jù),發(fā)現(xiàn)被修改了。這叫下流閱讀。b:回滾事務(wù)a:再次讀取數(shù)據(jù),將數(shù)據(jù)恢復(fù)到初始狀態(tài)。從上面的實(shí)驗(yàn)可以得出結(jié)論,事務(wù)b更新了一條記錄,但是沒有提交。此時(shí),事務(wù)a可以查詢未提交的記錄,導(dǎo)致臟讀,未提交讀是最低級(jí)別的隔離。(2)客戶端a的事務(wù)隔離級(jí)別設(shè)置為讀提交(commit read)。答:開始交易,數(shù)據(jù)處于初始狀態(tài)。b:啟動(dòng)事務(wù)并更新數(shù)據(jù),但是不要 不要提交。答:再次讀取數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)沒有被修改。b:提交一個(gè)事務(wù)a:再次讀取數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)有變化,說明b在事務(wù)中是a提交的,這叫不重復(fù)。通過上面的實(shí)驗(yàn)可以得出,讀隔離級(jí)別已經(jīng)提交,解決了臟讀的問題,但是有一個(gè)問題不需要重復(fù)讀,就是事務(wù)的查詢數(shù)據(jù)不匹配,因?yàn)閎更新了數(shù)據(jù)之間的查詢,只允許提交讀的記錄,但是不需要重復(fù)讀。(3)將a的隔離級(jí)別設(shè)置為可重復(fù)。取(可重復(fù)讀數(shù))。答:啟動(dòng)事務(wù),當(dāng)數(shù)據(jù)處于初始狀態(tài)時(shí)。b:啟動(dòng)事務(wù)并更新數(shù)據(jù),但是不要 不要提交。答:再次讀取數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)沒有被修改。b:提交一個(gè)事務(wù)a:再次讀取數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)沒有變化,說明這次又可以讀取了。b:插入一個(gè)新數(shù)據(jù)并提交。答:又看了一遍數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)沒有變化。雖然可以反復(fù)讀取,但是發(fā)現(xiàn)不是最新的數(shù)據(jù)。這就是所謂的魔法閱讀。回答:提交該事務(wù),再次讀取數(shù)據(jù),發(fā)現(xiàn)讀取正常。從上面的實(shí)驗(yàn)結(jié)果可以得出,可重復(fù)讀取隔離級(jí)別只能讀取記錄,當(dāng)一個(gè)事務(wù)讀取其他事務(wù)兩次時(shí),更新另一個(gè)部門的記錄,但這個(gè)事務(wù)不需要與其他事務(wù)序列化。例如,當(dāng)事務(wù)可以找到由提交的事務(wù)更新的記錄時(shí),它可能會(huì)導(dǎo)致圖像讀取問題。和上面的實(shí)驗(yàn)一樣,不存在數(shù)據(jù)讀取的問題。(4)設(shè)置隔離級(jí)別serializable a:啟動(dòng)事務(wù),此時(shí)數(shù)據(jù)處于初始狀態(tài)。b:我發(fā)現(xiàn)b這個(gè)時(shí)候在等,因?yàn)閍 s的事務(wù)還沒有提交,我只能等待(此時(shí)b可能在等待超時(shí))。答案:提交事務(wù)b:找到成功插入的完全序列化的鎖域。如果一個(gè)事務(wù)查詢相同的數(shù)據(jù),它必須等到前一個(gè)事務(wù)完成并且鎖被鎖定。這是一個(gè)完整的隔離級(jí)別,將鎖定相應(yīng)的數(shù)據(jù)表,從而有一個(gè)有效的問題。綜上所述,這就是本文的全部內(nèi)容。希望這篇文章的內(nèi)容對(duì)大家有所幫助 的研究。有問題可以留言交流。
    了解更多理解mysql的四個(gè)隔離級(jí)別(mysql 四個(gè)隔離級(jí)別)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。

    辦公電腦需要什么配置的電腦,辦公型電腦的配置
    什么輕薄本性價(jià)比高(哪款輕薄本值得購買)
    電腦開不開機(jī)了維修需要多少錢,電腦開不了機(jī)一般拿去修需要多少錢
    我的世界hmcl啟動(dòng)器啟動(dòng)失敗怎么辦(我的世界hmcl啟動(dòng)器下載鏈接)
    2018年惠普筆記本型號(hào),2018的新款筆記本包括什么牌子什么型號(hào)
    深入理解mysql的四個(gè)隔離級(jí)別分別為(mysql的四種隔離級(jí)別)
    自己組裝臺(tái)式電腦需要什么東西,組裝一臺(tái)臺(tái)式電腦需要哪些零件
    魅藍(lán)手機(jī)配置怎么查,魅藍(lán)note6手機(jī)參數(shù)配置
    蘋果手機(jī)怎么變成中文版本(蘋果手機(jī)如果怎么變中文)
    蘋果電腦查看圖片軟件(用電腦查看蘋果手機(jī)圖片)
    htc g10怎么截屏,HTC手機(jī)怎么截屏
    釘釘?shù)钠胀ㄈ汉蛢?nèi)部群有什么區(qū)別(釘釘群普通群和內(nèi)部群)
    美圖秀秀萌拍怎么添加照片(美圖秀秀萌拍素材在哪)
    小米怎么關(guān)閉更新系統(tǒng)更新系統(tǒng)更新提醒嗎,如何取消小米手機(jī)系統(tǒng)更新提示
    192.168.233.1惠普打印機(jī)設(shè)置網(wǎng)絡(luò)admin(1921682331惠普打印機(jī)設(shè)置網(wǎng)絡(luò))
    廣西最近幾年的地震(充電器線裂開了變綠色)_1
    怎樣提取微信聊天記錄轉(zhuǎn)發(fā)(怎樣提取微信聊天記錄作為證據(jù))
    vivos6屏幕多大尺寸(vivos6的屏幕尺寸)
    vivo手機(jī)連上wifi怎么上不了網(wǎng),為什么VIVO手機(jī)連上WiFi后不能上網(wǎng)
    美圖m6s配置怎么樣,美圖M8和M6s哪個(gè)好
    主站蜘蛛池模板: 人妻少妇精品视频三区二区一区| 亚洲中文字幕丝袜制服一区 | 中文字幕乱码亚洲精品一区| 国产精品成人一区无码| 亚洲日韩国产精品第一页一区| 国产精品区一区二区三| 亚洲av无码片vr一区二区三区| 88国产精品视频一区二区三区| 成人日韩熟女高清视频一区| 一区在线观看视频| 高清一区高清二区视频| 韩国女主播一区二区| 成人精品一区二区户外勾搭野战| 国产高清视频一区三区| 91福利国产在线观看一区二区| 一区二区高清视频在线观看| 波多野结衣中文一区| 日韩一区在线视频| 国产av一区二区精品久久凹凸| 国产精品综合一区二区三区| 国产在线第一区二区三区| 国产凸凹视频一区二区| 日韩在线一区二区三区免费视频| 国产福利一区二区精品秒拍| 国产精品无码一区二区三区在| 国产91精品一区| 精品一区二区三区高清免费观看 | 国产av天堂一区二区三区| 少妇无码AV无码一区| 亚洲一区AV无码少妇电影☆| 日本中文字幕一区二区有码在线| 国偷自产一区二区免费视频| 少妇特黄A一区二区三区| 国产大秀视频在线一区二区| 怡红院一区二区三区| 内射白浆一区二区在线观看 | 日本高清一区二区三区| 精品久久久久久中文字幕一区| 美女视频免费看一区二区| 中文字幕久久久久一区| 无码人妻精品一区二区三区99仓本|