+------+------+-----------------+------+---------+------+-------+------------------+
| Id   | User | Host            | db   | Command | Time | State | Info             |
+------+------+-----------------+------+---------+------+-------+------------------+
| 4362 | root | localhost       | cp   | Query   |    0 | NULL  | show processlist |
| 4491 | root | localhost:51806 | cp   | Sleep   |  248 |       | NULL             |
| 4499 | root | localhost:51821 | cp   | Sleep   |  244 |       | NULL             |
| 4506 | root | localhost:51835 | cp   | Sleep   |  241 |       | NULL             |
| 4513 | root | localhost:51847 | cp   | Sleep   |  237 |       | NULL             |
| 4538 | root | localhost:51895 | cp   | Sleep   |  228 |       | NULL             |
| 4540 | root | localhost:51900 | cp   | Sleep   |  225 |       | NULL             |
| 4542 | root | localhost:51904 | cp   | Sleep   |  223 |       | NULL             |
| 4543 | root | localhost:51905 | cp   | Sleep   |  223 |       | NULL             |
| 4551 | root | localhost:51921 | cp   | Sleep   |  221 |       | NULL             |
| 4554 | root | localhost:51927 | cp   | Sleep   |  220 |       | NULL             |
| 4558 | root | localhost:51934 | cp   | Sleep   |  219 |       | NULL             |
| 4561 | root | localhost:51941 | cp   | Sleep   |  216 |       | NULL             |
| 4565 | root | localhost:51952 | cp   | Sleep   |  213 |       | NULL             |
| 4566 | root | localhost:51953 | cp   | Sleep   |  213 |       | NULL             |
| 4569 | root | localhost:51956 | cp   | Sleep   |  213 |       | NULL             |
| 4576 | root | localhost:51973 | cp   | Sleep   |  210 |       | NULL             |
| 4578 | root | localhost:51977 | cp   | Sleep   |  210 |       | NULL             |
| 4582 | root | localhost:51985 | cp   | Sleep   |  205 |       | NULL             |
| 4583 | root | localhost:51987 | cp   | Sleep   |  205 |       | NULL             |
| 4585 | root | localhost:51991 | cp   | Sleep   |  202 |       | NULL             |
| 4586 | root | localhost:51992 | cp   | Sleep   |  202 |       | NULL             |
| 4590 | root | localhost:52000 | cp   | Sleep   |  202 |       | NULL             |
| 4591 | root | localhost:52002 | cp   | Sleep   |  202 |       | NULL             |
| 4602 | root | localhost:52024 | cp   | Sleep   |  200 |       | NULL             |
| 4605 | root | localhost:52030 | cp   | Sleep   |  199 |       | NULL             |
| 4609 | root | localhost:52041 | cp   | Sleep   |  195 |       | NULL             |
| 4613 | root | localhost:52051 | cp   | Sleep   |  192 |       | NULL             |
| 4616 | root | localhost:52057 | cp   | Sleep   |  189 |       | NULL             |
| 4620 | root | localhost:52064 | cp   | Sleep   |  188 |       | NULL             |
| 4626 | root | localhost:52076 | cp   | Sleep   |  183 |       | NULL             |
| 4640 | root | localhost:52106 | cp   | Sleep   |  175 |       | NULL             |
| 4643 | root | localhost:52114 | cp   | Sleep   |  173 |       | NULL             |
| 4650 | root | localhost:52130 | cp   | Sleep   |  171 |       | NULL             |
| 4651 | root | localhost:52131 | cp   | Sleep   |  171 |       | NULL             |
| 4652 | root | localhost:52135 | cp   | Sleep   |  170 |       | NULL             |
| 4663 | root | localhost:52159 | cp   | Sleep   |  165 |       | NULL             |
| 4667 | root | localhost:52171 | cp   | Sleep   |  161 |       | NULL             |
以上是show processlist的结果,经常会出现很多这种"空线程"状态,就是info项没有显示执行任何sql语句,而且time也都持续了很长时间了,我想请问mysql这是在干什么?我没有使用长连接,不知为什么会出现这种情况。

解决方案 »

  1.   

    我是否应该减小wait_timeout和interactive_timeout的值?
      

  2.   

    这些连接时间不算长啊。主要是看你的应用程序是如何访问MySQL的,有没有显示的mysql_close()来关闭连接。当然你可以减小 wait_timeout和interactive_timeout的值 ,但这不是从根本上解决问题,建议检查你的这个程序。
      

  3.   

    我在本机也试了下,和你的差不多。不同的是连接时间不长。因为我刚打开连接。我觉得这十多个sleep的线程,应该是mysql为每个连接准备的各种功能线程,我估计你调用一个存储过程或者做一个触发器操作,上面肯定会有某个线程被激活。
      

  4.   

    我的程序是很简单insert操作,没有什么特别的,表内我建立了一个两字段的联合索引。表内的数据也不多,有30几万吧。其实我只是想知道mysql这是在做什么,为什么什么操作也不执行,有这么多空的线程存在。
      

  5.   

    sorry,没看到3楼的回答,我没有使用任何触发器或存储过程,程序里面95%都是select,insert操作。我也认为这是mysql将在执行某个操作前准备出的线程,不过都连接这么长时间了,他怎么什么都不做?那个time的单位是秒吧?
      

  6.   

    我是使用短连接,并且都在合适的位置执行了mysql_close。
      

  7.   

    我在本机测试没有你这种现象啊。time 的单位是 秒。是该thread进入到当前状态的时间。你的这些connection 的状态都是 sleep, 等待SQL语句中。并且都有端口号。建议查一下日志看看都有哪些东西进行了连接。
      

  8.   

    好的,谢谢楼上。我怀疑是因某些原因mysql运行的速度太慢,它的内部队列处于阻塞状态,所以造成很多thread建立后,一直就停在那里了。嗯,正常情况下确实是没有这种现象的,我是在昨天发现mysql运行特别慢的时候看到的这种现象。