色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

MySQL數(shù)據(jù)庫(kù)會(huì)自動(dòng)加鎖,為什么還會(huì)出現(xiàn)數(shù)據(jù)讀臟?

這個(gè)問(wèn)題涉及到mysql的術(shù)語(yǔ)有臟讀,讀寫鎖,事務(wù)隔離級(jí)別,下面一一來(lái)解釋。

臟讀:事務(wù)一修改數(shù)據(jù)中的記錄時(shí),事務(wù)還沒(méi)提交,這時(shí)候事務(wù)二正好讀取到了這條修改過(guò)的數(shù)據(jù),然后事務(wù)一因?yàn)槟承┰蚴聞?wù)回滾,數(shù)據(jù)回到了原來(lái)的狀態(tài),事務(wù)二讀到的數(shù)據(jù)就是臟數(shù)據(jù),整個(gè)過(guò)程就是臟讀!

臟讀用大白話來(lái)說(shuō)就是:干哈呀?明明數(shù)據(jù)庫(kù)中沒(méi)有這個(gè)數(shù)據(jù),哪來(lái)的這玩意?

不可重復(fù)讀:事務(wù)一在一個(gè)事務(wù)中多次讀取同樣的數(shù)據(jù),這時(shí)候另一個(gè)事務(wù)剛好在修改數(shù)據(jù),導(dǎo)致事務(wù)一多次獲取到的數(shù)據(jù)不一致,這就是不可重復(fù)讀!不可重復(fù)讀通常出現(xiàn)在update中!

不可重復(fù)讀用大白話來(lái)說(shuō):怎么回事?我吃肉吃著吃著,誰(shuí)給我整成大白菜了?

幻讀:幻讀:事務(wù)一先根據(jù)條件獲取到M條數(shù)據(jù),然后事務(wù)二又增加或減少了N條數(shù)據(jù),導(dǎo)致事務(wù)一再次搜索的時(shí)候發(fā)現(xiàn)多了或者少了N條數(shù)據(jù),也就是發(fā)生了幻讀。通常出現(xiàn)在insert或者delete中!

幻讀用大白話來(lái)說(shuō)就是:啥玩意?剛才是M,轉(zhuǎn)個(gè)頭就給我整成M±N了,勞資出現(xiàn)幻覺(jué)了?

下面來(lái)看看mysql中的鎖:

寫鎖(排它鎖):獲取到排它鎖的事務(wù)可以對(duì)數(shù)據(jù)進(jìn)行任何操作,而且別的事務(wù)不能獲取到數(shù)據(jù)的任何其他鎖!

讀鎖(共享鎖):所有事務(wù)都可以公平的獲取到數(shù)據(jù)的共享鎖,進(jìn)行數(shù)據(jù)的讀取!

事務(wù)隔離級(jí)別有以下幾種,讀未提交,讀已提交,可重復(fù)讀,串行化,分別會(huì)對(duì)鎖進(jìn)行不同的控制,

以下的事務(wù)隔離級(jí)別解決錯(cuò)誤數(shù)據(jù)的能力越來(lái)越高:

1,讀未提交(0)啥都解決不了(0);

2,讀已提交(1)能解決臟讀(1);

3,可重復(fù)讀(2)能解決臟讀(1)和不可重復(fù)讀(2);

4,串行化(3)啥都能解決(1,2,3);

如果mysql開(kāi)啟的事務(wù)隔離級(jí)別是讀未提交,也就相當(dāng)于沒(méi)有鎖,數(shù)據(jù)隨便讀,很容易就能讀到臟數(shù)據(jù),容易出現(xiàn)臟讀的現(xiàn)象,生產(chǎn)環(huán)境肯定不能用這樣的事務(wù)隔離級(jí)別!

所以需要保證數(shù)據(jù)安全并兼容性能,就需要根據(jù)場(chǎng)景選擇不同的事務(wù)傳播級(jí)別,因?yàn)閿?shù)據(jù)錯(cuò)誤主要出現(xiàn)在臟讀,生產(chǎn)中大多數(shù)用的是讀已提交事務(wù)傳播級(jí)別!

最近正在持續(xù)的分享JAVA,數(shù)據(jù)庫(kù)相關(guān)的技術(shù),力保通俗易懂,敬請(qǐng)關(guān)注。。。