bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

確定能搞懂:臟讀、讀已提交、可重復(fù)讀、幻讀?

今天剛好在看某個公眾號中提到了這個知識點(diǎn),發(fā)現(xiàn)對這塊的解釋不是很到位,尤其是對幻讀這塊的解釋,很多文章都是相互復(fù)制粘貼,所以我們看到的大部分解釋都是類似的,很多人對幻讀這款不是很理解,讓看的人云里霧里、暈暈乎乎,所以拿出來說明一下;大家也可以留言,相互交流。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的北湖網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

主要內(nèi)容

本文以MySQLsql為例,介紹如下內(nèi)容:
1、什么是臟讀?
2、什么是讀已提交?
3、什么是可重復(fù)讀?
4、什么是幻讀?

臟讀、讀已提交、可重復(fù)讀、幻讀都是和事務(wù)隔離級別相關(guān)的一些東西,所以需要大家先理解事務(wù)相關(guān)的一些概念。

什么是事務(wù)?

我們這里所說的事務(wù)大多數(shù)是指數(shù)據(jù)的事務(wù),事務(wù)是指一個業(yè)務(wù)操作,一個業(yè)務(wù)操作內(nèi)部包含多個小的子操作,這些操作要目全部一起執(zhí)行成功,要么全部執(zhí)行失敗,不存在說一部分成功一部分失敗的情況。

事務(wù)有以下特性(ACID)
1、原子性(Atomicity)
事務(wù)作為一個整體被執(zhí)行,包含在其中的對數(shù)據(jù)庫的操作要么全部被執(zhí)行,要么都不執(zhí)行。

2、一致性(Consistency)
事務(wù)應(yīng)確保數(shù)據(jù)庫的狀態(tài)從一個一致狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€一致狀態(tài)。一致狀態(tài)的含義是數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)滿足完整性約束。

3、隔離性(Isolation)
多個事務(wù)并發(fā)執(zhí)行時,一個事務(wù)的執(zhí)行不應(yīng)影響其他事務(wù)的執(zhí)行。

4、持久性(Durability)
已被提交的事務(wù)對數(shù)據(jù)庫的修改應(yīng)該永久保存在數(shù)據(jù)庫中

何為臟讀?

一個事務(wù)在執(zhí)行的過程中讀取到了其他事務(wù)還沒有提交的數(shù)據(jù)。
這個還是比較好理解的。

何為讀已提交

從字面上我們就可以理解,即一個事務(wù)操作過程中可以讀取到其他事務(wù)已經(jīng)提交的數(shù)據(jù)。

事務(wù)中的每次讀取操作,讀取到的都是數(shù)據(jù)庫中其他事務(wù)已提交的最新的數(shù)據(jù)(相當(dāng)于當(dāng)前讀)

何為可重復(fù)讀

一個事務(wù)操作中對于一個讀取操作不管多少次,讀取到的結(jié)果都是一樣的。

可重復(fù)讀中有種情況需要注意
如,事務(wù)A:
1、打開事務(wù)
2、select count(id) from t_a,返回10行
3、向A表插入一條記錄
4、select count(id) from t_a,返回11行
5、提交事務(wù)

有疑問?
上面不是說可重復(fù)讀不管讀取多少次,結(jié)果都是一樣的,這個地方為什么不一樣呢?
可重復(fù)讀是指對于其他事務(wù)操作的數(shù)據(jù),多次讀取的結(jié)果都是一樣的,重點(diǎn)在于其他事務(wù)的數(shù)據(jù),如果第一次讀取能夠讀取到其他事務(wù)的數(shù)據(jù),后面不管其他事務(wù)有任何其他任何操作,都不會影響已讀取到的其他事務(wù)產(chǎn)生的數(shù)據(jù)。但是自己所在的事務(wù)中產(chǎn)生的數(shù)據(jù),自己是都可以讀取到的。

何為幻讀

臟讀、不可重復(fù)讀、可重復(fù)讀、幻讀,其中最難理解的是幻讀

以mysql為例:

幻讀在可重復(fù)讀的模式下才會出現(xiàn),其他隔離級別中不會出現(xiàn)

幻讀現(xiàn)象例子:
可重復(fù)讀模式下,比如有個用戶表,手機(jī)號碼為主鍵,有兩個事物進(jìn)行如下操作

事務(wù)A操作如下:
1、打開事務(wù)
2、查詢號碼為X的記錄,不存在
3、插入號碼為X的數(shù)據(jù),插入報錯(為什么會報錯,先向下看)
4、查詢號碼為X的記錄,發(fā)現(xiàn)還是不存在(由于是可重復(fù)讀,所以讀取記錄X還是不存在的)

事物B操作:在事務(wù)A第2步操作時插入了一條X的記錄,所以會導(dǎo)致A中第3步插入報錯(違反了唯一約束)

上面操作對A來說就像發(fā)生了幻覺一樣,明明查詢X(A中第二步、第四步)不存在,但卻無法插入成功

幻讀可以這么理解:事務(wù)中后面的操作(插入號碼X)需要上面的讀取操作(查詢號碼X的記錄)提供支持,但讀取操作卻不能支持下面的操作時產(chǎn)生的錯誤,就像發(fā)生了幻覺一樣。

十年java老兵,只生產(chǎn)干貨,公眾號:路人甲Java,微信號:itsoku

網(wǎng)站欄目:確定能搞懂:臟讀、讀已提交、可重復(fù)讀、幻讀?
轉(zhuǎn)載注明:http://vcdvsql.cn/article30/podopo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、小程序開發(fā)自適應(yīng)網(wǎng)站、軟件開發(fā)、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)