亚洲精品92内射,午夜福利院在线观看免费 ,亚洲av中文无码乱人伦在线视色,亚洲国产欧美国产综合在线,亚洲国产精品综合久久2007

?
Java知識(shí)分享網(wǎng) - 輕松學(xué)習(xí)從此開(kāi)始!????

Java知識(shí)分享網(wǎng)

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus權(quán)限系統(tǒng)實(shí)戰(zhàn)課程 震撼發(fā)布        

最新Java全棧就業(yè)實(shí)戰(zhàn)課程(免費(fèi))

AI人工智能學(xué)習(xí)大禮包

IDEA永久激活

66套java實(shí)戰(zhàn)課程無(wú)套路領(lǐng)取

鋒哥開(kāi)始收J(rèn)ava學(xué)員啦!

Python學(xué)習(xí)路線圖

鋒哥開(kāi)始收J(rèn)ava學(xué)員啦!

這六個(gè) MySQL 死鎖案例,能讓你理解死鎖的原因!PDF 下載


分享到:
時(shí)間:2021-04-27 09:54來(lái)源:http://sh6999.cn 作者:轉(zhuǎn)載  侵權(quán)舉報(bào)
這六個(gè) MySQL 死鎖案例,能讓你理解死鎖的原因!PDF 下載
失效鏈接處理
這六個(gè) MySQL 死鎖案例,能讓你理解死鎖的原因!PDF 下載


本站整理下載:
提取碼:kl5w 
 
 
相關(guān)截圖:
 
主要內(nèi)容:

最近總結(jié)了一波死鎖問(wèn)題,和大家分享一下,我這也是從網(wǎng)上各種瀏覽博客得來(lái)。
Mysql 鎖類型和加鎖分析
MySQL有三種鎖的級(jí)別:頁(yè)級(jí)、表級(jí)、行級(jí)。
表級(jí)鎖:開(kāi)銷小,加鎖快;不會(huì)出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低。
行級(jí)鎖:開(kāi)銷大,加鎖慢;會(huì)出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。
頁(yè)面鎖:開(kāi)銷和加鎖時(shí)間界于表鎖和行鎖之間;會(huì)出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度
算法:
next KeyLocks鎖,同時(shí)鎖住記錄(數(shù)據(jù)),并且鎖住記錄前面的Gap  
Gap鎖,不鎖記錄,僅僅記錄前面的Gap
Recordlock鎖(鎖數(shù)據(jù),不鎖Gap)
所以其實(shí) Next-KeyLocks=Gap鎖+ Recordlock鎖
死鎖產(chǎn)生原因和示例
產(chǎn)生原因
所謂死鎖<DeadLock>:是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而造成的一種互相等待的現(xiàn)象,若無(wú)外力作用,它們都將無(wú)法推進(jìn)下去.此時(shí)稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程。表級(jí)鎖不會(huì)產(chǎn)生死鎖.所以解決死鎖主要還是針對(duì)于最常用的InnoDB。
死鎖的關(guān)鍵在于:兩個(gè)(或以上)的Session加鎖的順序不一致。
那么對(duì)應(yīng)的解決死鎖問(wèn)題的關(guān)鍵就是:讓不同的session加鎖有次序
產(chǎn)生示例
案例一
需求:將投資的錢(qián)拆成幾份隨機(jī)分配給借款人。
起初業(yè)務(wù)程序思路是這樣的:
投資人投資后,將金額隨機(jī)分為幾份,然后隨機(jī)從借款人表里面選幾個(gè),然后通過(guò)一條條select for update 去更新借款人表里面的余額等。
例如兩個(gè)用戶同時(shí)投資,A用戶金額隨機(jī)分為2份,分給借款人1,2
B用戶金額隨機(jī)分為2份,分給借款人2,1
由于加鎖的順序不一樣,死鎖當(dāng)然很快就出現(xiàn)了。
對(duì)于這個(gè)問(wèn)題的改進(jìn)很簡(jiǎn)單,直接把所有分配到的借款人直接一次鎖住就行了。
Select * from xxx where id in (xx,xx,xx) for update
在in里面的列表值mysql是會(huì)自動(dòng)從小到大排序,加鎖也是一條條從小到大加的鎖

 

------分隔線----------------------------
關(guān)注Java1234微信公眾號(hào)
欄目列表
推薦資料
?
鋒哥公眾號(hào)


鋒哥微信


關(guān)注公眾號(hào)
【Java資料站】
回復(fù) 666
獲取 
66套java
從菜雞到大神
項(xiàng)目實(shí)戰(zhàn)課程

鋒哥推薦