Mysql sending data 问题

文章讲述了作者在公司服务器上遇到MySQL卡死在'sending data'状态的问题,尝试使用KILL命令进行处理,但仅是临时解决方案。分析指出,问题可能与Query Cache有关,过大的Query Cache可能导致资源互斥。建议在大并发和频繁更新操作的环境中禁用Query Cache,并提供了相关配置选项。
摘要由CSDN通过智能技术生成

最近公司服务器上总是出现Mysql卡死的问题, 用 show processlist 命令打印出很多进程卡死在sending data 状态。一开始为了快速的回复正常状态, 我尝试使用了如下的命令:

SELECT GROUP_CONCAT(CONCAT('KILL',id,';') SEPARATOR ' ')  from information_schema.processlist WHERE command NOT in ('Sleep', ‘Binlog dump’) And Time > 'TIME_LIMIT_HERE'


最先的时候使用了Kill Query, 发现根本无效,随后改为 Kill 才可以真正的抹掉进程. Mysql 官方说Kill query 会终结正在当前连接的操作(statement ) 但是保持连接的完整性, 而Kill 就是终止连接。 难道在sending data 状态的Executing 已经不属于操作(statement ) 的范畴了吗, 这个还有待考证。


Mysql 在短暂的回复后马上又有大量的操作停留在sending data的状态在,看来这个治标不治本的方法行不通,没办法由于合同的Availability的问题没有太多时间分析,只能重启Mysql和 JBOSS了。


随后Google了一下,发现网上有很多人遇到了类似的问题, 而大多数问题的焦点在Query cache上。 过大的 Query cache 会引起资源的互斥,因为Mysql在query cache 上只有一个全局锁, 搜寻query cache的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值