MySQL鎖分析

xuexiaogang發表於2021-12-11

自己原文公眾號: https://mp.weixin.qq.com/s/4JQwhyPOpt8QXZ_cjuDLug


簡單的一個鎖的說明。有時候其實不是什麼證據都拿得到。但是可以推斷,至少我們可以知道影響程度。

注意下圖(圖3),這裡看到鎖了2個表(藍色框)說明這一個事務有多個表,具體哪兩個表我們不知道,只但是h1表示知道的,因為SQL在這裡(trx_query的就是也是我上圖中的被卡主的那句SQL),另外一個不知道但是從破案的角度說明有。

紅色的框表示鎖了一個表,但是鎖了2行,紅色的表示圖1的事務。鎖的表示H1,但是還沒有提交。但是這個SQL其實在後臺是看不到的。

        雖然看不到,但是我可以推斷影響,只是1-2行。如果這裡出現幾千幾萬行,多少出現多個表,那說明非常的嚴重了。



然後解析binlog可以看到成功的資料。這裡注意的其實不是兩個紅框的內容,而是看commit和begin的時間。第一個紅框的commit是16:54:40。而第二個紅框的上面開始時間是16:52:00。這就可以充分說明鎖的存在,因為第二個先開始,但是後結束,說明被堵塞了。但是如果說要找到超時被回退的SQL就不行了,沒有執行成功,所以不能計入Binlog。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847175/,如需轉載,請註明出處,否則將追究法律責任。

相關文章