当前位置: 代码迷 >> MySQL >> mysql 线程等待时间,解决sleep过程过多的办法
  详细解决方案

mysql 线程等待时间,解决sleep过程过多的办法

热度:120   发布时间:2016-05-05 16:34:44.0
mysql 线程等待时间,解决sleep进程过多的办法

?show processlist 看了以下,发现我的那个业务的DB确实有很多sleep链接没有关闭。



以前也曾遇到过类似的问题,导致此问题的原因从网上查了,大体有几下几种原因:

造成睡眠连接过多的原因?

?

1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接)

2. 程序中,没有及时关闭mysql连接

3. 数据库查询不够优化,过度耗时。

?

?

对于正在运行中的生产服务器,在不能停止服务情况下,修改此项怎么办?很简单,以root用户登录到mysql,执行:
set global wait_timeout=100
?
mysql的配置文件中,有一项:
?
wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止,多好的办法!
?
如设置: 
?
wait_timeout=100#即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止
?
?
  相关解决方案