中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

如何處理MySQL死鎖問題

小編給大家分享一下如何處理MySQL死鎖問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創新互聯從2013年開始,先為泰順等服務建站,泰順等地企業,進行企業商務咨詢服務。為泰順企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

MySQL里的鎖兼容列表大體是這樣的關系,如果第一次看會有些暈,感覺抓不住重點,其實有一點小技巧。

首先InnoDB實現了兩種類似的行鎖,即S(共享鎖)和X(排他鎖),而InnoDB層面的表級意向鎖有IS(意向共享鎖)和IX9意向排他鎖),意向鎖之間是互相兼容的,這句話很重要,按照這個思路里面一半的內容就明確了。而另外一部分則是S和X的兼容性。帶著S鎖和X鎖的組合都是互相排斥,只有一類場景例外,那就是都是S鎖,是兼容的。所以這個圖按照這個思路幾乎不用記就能基本理解了。

如何處理MySQL死鎖問題

看起來S鎖的組合是很柔和的,從這種場景來看保持兼容,那么出死鎖的概率應該很低吧,其實在RR,RC隔離級別下我們可以逐步擴展然后舉一反三。

如果S鎖的組合在兩個會話中是互相兼容,那么接下來的X鎖的組合就是互相排斥的。

如何處理MySQL死鎖問題

那么在兩個會話并發的場景下,死鎖的步驟如下:

mysql> create table dt1 (id int unique

Query OK, 0 rows affected (0.03 sec)

會話1:

begin;

select *from dt1 lock in share mode; --顯式共享鎖

會話2:

begin;

select *from dt1 lock in share mode; --顯式共享鎖

會話1:

insert into dt1 values(1); --阻塞

會話2:

insert into dt1 values(2); --觸發死鎖

所以上面的語句特點很明顯,插入的數據分別是1和2,看起來互補沖突也不行。

我們進度稍快一些,我們可能很少看到直接聲明share mode的方式,但是有很多時候由其他的場景會觸發,其中的一個主要原因就在于對于duplicate數據的檢查會開啟S鎖。這是比較特別的一點,需要注意。

按照這一點來擴展,很容易就可以擴展到3個會話中。

會話1只是負責插入一條數據,會話2,3也緊接著插入一條記錄(會話2,3自動提交),但是因為唯一性索引的檢查,會導致會話2和會話3都開啟了S鎖,因為兼容,所以暫時還沒影響。如果會話1正常提交,會話2,3的檢查會生效,導致數據插入不了,違反唯一性約束,但是我們反其道而行,就可以用一個rollback來釋放鎖,緊接著會話2和會話3都會獲得S鎖成功,緊接著獲得X鎖,細節算法就不說了。這個時候互相阻塞,導致會話3產生死鎖,會話2的數據插入依然會成功。

會話1:

begin;

insert into dt1 values(1);

會話2:

insert into dt1 values(1);

會話3:

insert into dt1 values(1);

會話1:

rollback;

看起來很精巧的小測試,但是里面蘊含這大道理,比如按照這個思路,如果后面的兩個語句都是delete,也會觸發死鎖。有的時候我們可以正面來圖例,或者通過死鎖日志來推理。給我的一個啟發是太極。

如何處理MySQL死鎖問題

放在鎖的角度來理解就會好很多。

用一張不太形象的圖表示就是,左邊的部分是insert操作在會話1中,右邊的是在會話2和會話3中,都持有S鎖,然后會因為同樣的原因事務回滾后,他們的S鎖會升級為X鎖導致死鎖發生。

如何處理MySQL死鎖問題

按照這個思路,我們可以繼續擴展出幾個場景。比如delete的方式。

如何處理MySQL死鎖問題

按照這樣的思路,可以構建出很多的死鎖場景來。

以上是“如何處理MySQL死鎖問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

當前標題:如何處理MySQL死鎖問題
URL鏈接:http://www.2m8n56k.cn/article40/ipcieo.html

成都網站建設公司_創新互聯,為您提供企業網站制作虛擬主機網站排名關鍵詞優化全網營銷推廣網站導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 成人影院午夜久久影院 | 亚洲精品国产一区二区在线 | 三级a黄 | 亚洲高清一区二区三区 | 美女网站免费观看视频 | 欧美毛片网站 | 欧美国产成人精品一区二区三区 | 午夜综合网| 美女张开腿让男人 | 欧美高清在线视频一区二区 | 91国内视频 | 久久手机在线视频 | 久草福利在线观看 | 国产呦在线观看视频 | 中文字幕一二三区乱码老 | 欧美成人免费 | 欧美日韩一区二区三区四区在线观看 | 欧美高清在线视频一区二区 | 国产黄色三级三级三级 | 怡红院视频网 | 国产初高中生粉嫩无套第一次 | 欧美一区二区视频在线观看 | 特黄特色大片免费播放路01 | 欧美中文字幕在线视频 | 色伦网 | 成年人免费在线观看网站 | 美女黄色一级毛片 | 欧美精品午夜毛片免费看 | 国产成人亚洲综合欧美一部 | 国产在线观a免费观看 | 亚洲涩涩精品专区 | 日韩一区二区天海翼 | 亚洲成在人线久久综合 | 69精品免费视频 | 越南高清幻女bbwxxxx | 亚洲欧美另类在线视频 | 成人国产精品一区二区网站 | 亚洲人成毛片线播放 | 精品综合久久久久久99 | 一级黄色片aaa | 亚洲在线第一页 |