MySQL锁分析

来源:这里教程网 时间:2026-03-01 16:15:27 作者:

自己原文公众号: 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。

相关推荐