国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂


Mysql中的innoDB怎么解決幻讀

WBOY
發(fā)布: 2023-05-27 15:34:20
轉(zhuǎn)載
1808人瀏覽過

1.Mysql的事務(wù)隔離級別

mysql中的innodb怎么解決幻讀

這四種隔離級別,當(dāng)存在多個事務(wù)并發(fā)沖突的時候,可能會出現(xiàn)臟讀,不可重復(fù)讀,幻讀的一些問題,而innoDB在可重復(fù)讀隔離級別模式下解決了幻讀的一個問題,

2. 什么是幻讀

幻讀是指在同一個事務(wù)中,前后兩次查詢相同范圍的時候得到的結(jié)果不一致

Mysql中的innoDB怎么解決幻讀

如圖,第一個事務(wù)里面,我們執(zhí)行一個范圍查詢,這個時候滿足條件的數(shù)據(jù)只有一條,而在第二個事務(wù)里面,它插入一行數(shù)據(jù)并且進(jìn)行了提交,接著第一個事務(wù)再去查詢的時候,得到的結(jié)果比第一次查詢的結(jié)果多出來一條數(shù)據(jù),注意第一個事務(wù)的第一次和第二次查詢,都在同一個事物里面,所以,幻讀會帶來數(shù)據(jù)一致性的問題

3. InnoDB如何解決幻讀的問題

InnoDB引入間隙鎖和next-key lock機(jī)制去解決幻讀問題

Mysql中的innoDB怎么解決幻讀

假如現(xiàn)在存在這樣一個B+Tree的索引結(jié)構(gòu),這個結(jié)構(gòu)有4個索引元素,分別是1,4,7,10 當(dāng)我們通過主鍵索引查詢一條記錄,并且對這條記錄通過for update加鎖的時候

Mysql中的innoDB怎么解決幻讀

這個時候會產(chǎn)生一個記錄鎖,也就是行鎖,鎖定id=1這個索引

Mysql中的innoDB怎么解決幻讀

被鎖定的記錄在鎖釋放之前,其他事務(wù)無法對這一條記錄做任何操作的,前面我們所過對幻讀的定義,幻讀是指在同一個事務(wù)中,前后兩次查詢相同范圍的時候得到的結(jié)果不一致,注意這里敲掉的是范圍查詢,也就是說要解決幻讀的問題,必須保證一個點(diǎn)

Mysql中的innoDB怎么解決幻讀

就是如果一個事務(wù)通過這樣一條語句進(jìn)行鎖定的時候,另外一個事務(wù)再執(zhí)行

Mysql中的innoDB怎么解決幻讀

這樣一條insert語句需要被阻塞,直到前面獲得所的事務(wù)被釋放,所以在innonDB設(shè)計(jì)一種間隙鎖,它的主要功能是鎖定一定范圍內(nèi)的索引記錄

Mysql中的innoDB怎么解決幻讀

當(dāng)對查詢范圍id > 4 and id

Mysql中的innoDB怎么解決幻讀

這條查詢語句針對id > 4這個條件加鎖,那么它需要鎖定多個索引區(qū)間,所以這個情況下InnoDB引入一個叫next-key lock機(jī)制,next-key lock相當(dāng)于間隙鎖和記錄鎖的合集,記錄鎖鎖定存在記錄的行,間隙鎖鎖住的是記錄行之間的間隙,而next-key lock鎖住的是兩者的和

Mysql中的innoDB怎么解決幻讀

每個數(shù)據(jù)行非唯一的索引列,都會存在一把next-key lock,當(dāng)某個事務(wù)持有這一行數(shù)據(jù)的next-key lock的時候,會鎖住一段在左開右閉區(qū)間的數(shù)據(jù),因此當(dāng)通過id > 4這樣一個范圍加鎖的時候,InnoDB會去加一個next-key lock鎖,鎖定的區(qū)間范圍是(4,7 ](7,10 ](10,+?? ]。間隙鎖和next-key lock的區(qū)別是在加鎖的范圍,間隙鎖鎖定的是兩個索引之間的間隙,而next-key lock會鎖定多個索引區(qū)間,它包含記錄鎖和間隙鎖當(dāng)我們使用范圍查詢不僅僅命中Record記錄,還包含了Gap間隙的時候,在這種情況下使用的就是臨鍵鎖,也就是next-key lock它是Mysql里面默認(rèn)的行鎖算法

以上就是Mysql中的innoDB怎么解決幻讀的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級免費(fèi)優(yōu)化軟件

每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進(jìn)程會占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
相關(guān)標(biāo)簽:
來源:億速云網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號