下面講講關(guān)于MySQL的事務(wù)隔離級(jí)別可以解決什么問題,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL的事務(wù)隔離級(jí)別可以解決什么問題這篇文章你一定會(huì)有所受益。
一、事務(wù)的原則
事務(wù)要滿足ACID原則,也就是:
1.原子性(Atomicity):事務(wù)開始后所有操作,要么全部做完,要么全部不做,不可能停滯在中間環(huán)節(jié)。事務(wù)執(zhí)行過程中出錯(cuò),會(huì)回滾到事務(wù)開始前的狀態(tài),所有的操作就像沒有發(fā)生一樣。也就是說事務(wù)是一個(gè)不可分割的整體。
2.一致性(Consistency):事務(wù)開始前和結(jié)束后,數(shù)據(jù)庫的完整性約束沒有被破壞 。比如A向B轉(zhuǎn)賬,不能出現(xiàn)A扣了錢,B卻沒收到。
3.隔離性(Isolation):同一時(shí)間,只允許一個(gè)事務(wù)請(qǐng)求同一數(shù)據(jù),不同的事務(wù)之間彼此沒有任何干擾。比如A正在從一張銀行卡中取錢,在A取錢的過程結(jié)束前,B不能向這張卡轉(zhuǎn)賬。
4.持久性(Durability):事務(wù)完成后,事務(wù)對(duì)數(shù)據(jù)庫的所有更新將被保存到數(shù)據(jù)庫,不能回滾。
二、事務(wù)并發(fā)造成的問題
1.臟讀:事務(wù)A讀取了事務(wù)B更新的數(shù)據(jù),然后B回滾操作,那么A讀取到的數(shù)據(jù)是臟數(shù)據(jù)。比如:
事務(wù)B把用戶的年齡更新成22歲,但是事務(wù)還未提交。此時(shí)事務(wù)A來讀用戶的年齡,讀到了22歲,然后去做自己的處理。之后事務(wù)B把用戶的年齡回滾到21歲。這個(gè)例子中事務(wù)A讀到的22歲就是臟數(shù)據(jù)。http://www.chacha8.cn/detail/1132398235.html
2.不可重復(fù)讀:事務(wù) A 多次讀取同一數(shù)據(jù),事務(wù) B 在事務(wù)A多次讀取的過程中,對(duì)數(shù)據(jù)作了更新并提交,導(dǎo)致事務(wù)A多次讀取同一數(shù)據(jù)時(shí),結(jié)果不一致。比如:
事務(wù)B先把用戶的余額更新為100元,事務(wù)A來讀的時(shí)候讀到的是100元,然后事務(wù)B又把余額更新為90元,此時(shí)事務(wù)A來讀的時(shí)候讀到的就是90元,也就是事務(wù)A讀到的數(shù)據(jù)前后不一致。
3.幻讀:事務(wù)A對(duì)表中的數(shù)據(jù)進(jìn)行了修改,涉及到表中的全部行。同時(shí),事務(wù)B也修改這個(gè)表中的數(shù)據(jù),向表中插入一行新數(shù)據(jù)。那么,事務(wù)A發(fā)現(xiàn)表中還有自己沒有修改的行,就好象發(fā)生了幻覺一樣。比如:
A先把所有人的余額清零,同時(shí),B往表中插入了一條余額為100的數(shù)據(jù)。A提交以后,發(fā)現(xiàn)竟然還有100的。就好像發(fā)生了幻覺一樣,這就叫幻讀。
三、MySQL的事務(wù)隔離級(jí)別
MySQL的事務(wù)隔離級(jí)別有四種:
1.讀未提交(read-uncommitted):能讀到未提交的數(shù)據(jù)。會(huì)出現(xiàn)臟讀、不可重復(fù)讀、幻讀。
2.讀已提交(read-committed):讀已提交的數(shù)據(jù)。會(huì)出現(xiàn)不可重復(fù)讀和幻讀。
3.可重復(fù)讀(repeatable-read):mysql默認(rèn)的事務(wù)隔離級(jí)別,查詢的都是事務(wù)開始時(shí)的數(shù)據(jù)。只會(huì)出現(xiàn)幻讀。
4.串行讀(serializable):完全串行化讀,每次都會(huì)鎖表,讀寫互相阻塞。高隔離級(jí)別,不會(huì)出現(xiàn)臟讀,不可重復(fù)讀,幻讀。但會(huì)大大影響系統(tǒng)的性能,一般不用。
對(duì)于以上MySQL的事務(wù)隔離級(jí)別可以解決什么問題相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:MySQL的事務(wù)隔離級(jí)別可以解決什么問題-創(chuàng)新互聯(lián)
瀏覽地址:http://chinadenli.net/article2/deesic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站維護(hù)、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、云服務(wù)器、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容