MySQL查询MyISAM表的阻塞session,Waiting for table level lock

本文讲述了在遇到MySQL MyISAM表查询阻塞问题时,如何识别和处理。通常认为MyISAM的并发insert会出现'Waiting for table level lock',但实际情况可能由select session引起。通过分析processlist_time,可以发现长时间阻塞的session。通过performance_schema的metadata_locks和table_handles表可以查到阻塞的session。同时提到,设置concurrent_insert参数可以缓解读写阻塞,但无法解决写写阻塞问题。
摘要由CSDN通过智能技术生成

今天遇到一个问题,一个同事给我截了一个图,

上面有大量的“Waiting for table level lock”,问我怎么处理。我想当然了一下,myisam表都是表锁,并发的insert出现“Waiting for table level lock”不是很正常么,于是就把我的想法告诉他了:使用批量插入或者用lock...unlock; 包裹多条insert。过了一会儿,同事说解决了,并发过来一个截图,上面有一个myisam表的select  session。

无语,wtf!

其实这个问题如果仔细看一下是比较明显的,session上的processlist_time长达80多秒,正常的insert不会有这么长时间的阻塞。倒是慢查询导致的读阻塞写是比较有可能的。还是太过于想当然。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值