-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
不可重復(fù)讀(不可重復(fù)讀會導(dǎo)致什么問題)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于不可重復(fù)讀的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、三級封鎖協(xié)議
鎖的類型:
基本的封鎖類型有兩種: 排它鎖(X鎖) 和 共享鎖(S鎖)
X鎖,是事務(wù)T對數(shù)據(jù)A加上X鎖時,只允許事務(wù)T讀取和修改數(shù)據(jù)A
S鎖,是事務(wù)T對數(shù)據(jù)A加上S鎖時,其他事務(wù)只能再對數(shù)據(jù)A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。
若事務(wù)T對數(shù)據(jù)對象A加了S鎖,則T就可以對A進(jìn)行讀取,但不能進(jìn)行更新(S鎖因此又稱為讀鎖)。在T釋放A上的S鎖以前,其他事務(wù)可以再對A加S鎖,但不能加X鎖,從而可以讀取A,但不能更新A。
更多鎖的類型和隔離級別參考 SQL 隔離級別
丟失更新(一類丟失更新)
撤銷一個事務(wù)時,把其他事務(wù)已提交的更新數(shù)據(jù)覆蓋
臟讀
一個事務(wù)讀到另一個事務(wù)未提交的更新數(shù)據(jù)
不可重復(fù)讀
一個事務(wù)讀到另一個事務(wù)已提交的更新數(shù)據(jù)
覆蓋更新(二類丟失更新)
這是不可重復(fù)讀中的特例,一個事務(wù)覆蓋另一個事務(wù)已提交的更新數(shù)據(jù)
虛讀(幻讀)
一個事務(wù)讀到另一個事務(wù)已提交的新插入的數(shù)據(jù)
在運用X鎖和S鎖對數(shù)據(jù)對象加鎖時,還需要約定一些規(guī)則。例如何時申請X鎖或S鎖、持鎖時間、何時釋放等。稱這些規(guī)則為封鎖協(xié)議(Locking Protocol)
一級封鎖協(xié)議(對應(yīng)read uncommited)
事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放,事務(wù)結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束(ROLLBACK)。
一級封鎖協(xié)議可以 防止丟失修改 ,并保證事務(wù)T是可恢復(fù)的。使用一級封鎖協(xié)議可以解決丟失修改問題。
在一級封鎖協(xié)議中,如果 僅僅是讀數(shù)據(jù)不對其進(jìn)行修改,是不需要加鎖的 ,它 不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù) 。
二級封鎖協(xié)議(對應(yīng)read commited)
在一級封鎖協(xié)議之上,事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后方可釋放S鎖。
二級封鎖協(xié)議除防止了丟失修改,還可以 進(jìn)一步防止讀“臟”數(shù)據(jù) 。
但在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后即可釋放S鎖,所以它 不能保證可重復(fù)讀 。
三級封鎖協(xié)議(對應(yīng)reapetable read)
在一級封鎖協(xié)議之上,事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放S鎖。
三級封鎖協(xié)議除防止了丟失修改和不讀“臟”數(shù)據(jù)外,還 進(jìn)一步防止了不可重復(fù)讀 。
四級封鎖協(xié)議(對應(yīng)serialization)
四級封鎖協(xié)議是對三級封鎖協(xié)議的增強(qiáng),其實現(xiàn)機(jī)制也最為簡單,直接對事務(wù)中所讀取或者更改的數(shù)據(jù)所在的表 加表鎖 ,也就是說,其他事務(wù)不能讀寫該表中的任何數(shù)據(jù)。這樣五類并發(fā)問題都得以避免!
二、
三、
四、
以上就是關(guān)于不可重復(fù)讀相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
snapchat不可以看剩余電量嗎(snapchat在哪看照片)
杭州聯(lián)合銀行可不可靠(杭州聯(lián)合銀行怎么樣,值得去嗎)
如何避免不可重復(fù)讀(如何避免不可重復(fù)讀英語)