溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL中四種隔離級(jí)別分別是什么

發(fā)布時(shí)間:2020-12-03 12:09:48 來源:億速云 閱讀:194 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章給大家分享的是有關(guān)MySQL中四種隔離級(jí)別分別是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

事務(wù)的隔離性比想象的要復(fù)雜,在 SQL 標(biāo)準(zhǔn)中定義了四種級(jí)別的隔離級(jí)別。通常而言,較低級(jí)別的隔離通常可以執(zhí)行更高的并發(fā),系統(tǒng)的開銷也更低(推薦課程:MySQL視頻教程)

READ UNCOMMITTED

該級(jí)別為未提交讀。在該級(jí)別中,事務(wù)中的修改即使沒有提交,對(duì)其他事務(wù)也都是可見的。事務(wù)可以讀取未提交的數(shù)據(jù),這也被稱為臟讀。這個(gè)級(jí)別會(huì)導(dǎo)致很多的問題,從性能上來說,它不會(huì)比其他級(jí)別好太多,但缺乏其他級(jí)別的很多好處。除非真的有非常必要的理由,在實(shí)際應(yīng)用中一般很少使用。

READ COMMITTED

該級(jí)別為提交讀。大部分?jǐn)?shù)據(jù)庫系統(tǒng)的默認(rèn)隔離級(jí)別都是它,但 MySQL 不是。該級(jí)別滿足隔離性的簡(jiǎn)單定義:一個(gè)事務(wù)開始時(shí),只能“看見”已經(jīng)提交的事務(wù)所做的修改。換而言之,一個(gè)事務(wù)從開始直到提交之前,所做的任何修改對(duì)其他事務(wù)都是不可見的。這個(gè)級(jí)別有時(shí)候也叫做不可重復(fù)讀,因?yàn)閮纱螆?zhí)行同樣的查詢,可能會(huì)得到不一樣的結(jié)果。

REPEATABLE READ

該級(jí)別為可重復(fù)讀,它是 MySQL 默認(rèn)的事務(wù)隔離級(jí)別。它解決了臟讀的問題,保證了在同一個(gè)事務(wù)中多次讀取同樣記錄的結(jié)果是一致的。

但是理論上,該級(jí)別卻無法解決另外一個(gè)問題:幻讀。所謂幻讀,指的是當(dāng)某個(gè)事務(wù)在讀取某個(gè)范圍內(nèi)的記錄時(shí),另外一個(gè)事務(wù)又在該范圍內(nèi)插入了新的記錄,當(dāng)之前的事務(wù)再次讀取該范圍的記錄時(shí),會(huì)產(chǎn)生幻行。

幻讀示例: 第一個(gè)事務(wù)對(duì)一個(gè)表中的數(shù)據(jù)進(jìn)行了修改,比如這種修改涉及到表中的“全部數(shù)據(jù)行”。同時(shí),第二個(gè) 事務(wù)也修改這個(gè)表中的數(shù)據(jù),這種修改是向表中插入“一行新數(shù)據(jù)”。那么,以后就會(huì)發(fā)生操作第一個(gè) 事務(wù)的用戶發(fā)現(xiàn)表中還有沒有修改的數(shù)據(jù)行,就好象發(fā)生了幻覺一樣.

InnoDB存儲(chǔ)引擎通過多版本并發(fā)控制解決了幻讀的問題。

SERIALIZABLE

該級(jí)別為可串行化,是最高的隔離級(jí)別。它通過強(qiáng)制事務(wù)串行執(zhí)行,避免了前面說的幻讀問題。簡(jiǎn)而言之,該級(jí)別會(huì)在讀取的每一行數(shù)據(jù)上都加鎖,所以可能導(dǎo)致大量的超時(shí)和鎖爭(zhēng)用問題。

實(shí)際應(yīng)用中也很少使用這個(gè)隔離級(jí)別,只有在非常需要確保數(shù)據(jù)的一致性而且可以接受沒有并發(fā)的情況下,才考慮采用該級(jí)別。

隔離級(jí)別臟讀可能性不可重復(fù)讀可能性幻讀可能性加鎖讀
READ UNCOMMITTEDYesYesYesNo
READ COMMITTEDNoYesYesNo
REPEATABLE READNoNoYesNo
SERIALIZABLENoNoNoYes

感謝各位的閱讀!關(guān)于MySQL中四種隔離級(jí)別分別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI