当我在 MySQL 数据库中运行 SHOW PROCESSLIST 时,我得到以下输出:
mysql> show full processlist;
+--------+------+-----------+--------+---------+-------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+------+-----------+-------+---------+-------+-------+-----------------------+
| 411665 | root | localhost | somedb | Sleep | 11388 | | NULL |
| 412109 | root | localhost | somedb | Query | 0 | NULL | show full processlist |
+--------+------+-----------+-------+---------+-------+-------+------------------------+
我想知道命令下的进程“ sleep ”。这是什么意思?为什么它运行了很长时间并显示为NULL?它使数据库变慢,当我终止进程时,它可以正常工作。请帮帮我。
最佳答案
这不是等待连接的查询;这是一个等待超时终止的连接指针。
它对性能没有影响。它唯一使用的是每个连接都使用的几个字节。
真正最糟糕的情况:它正在使用您的池的一个连接;如果您要通过控制台客户端连接多次并关闭客户端而不关闭连接,您可能会用完所有连接并且必须等待超时才能再次连接......但这不太可能:-)
见 MySql Proccesslist filled with "Sleep" Entries leading to "Too many Connections"?和 https://dba.stackexchange.com/questions/1558/how-long-is-too-long-for-mysql-connections-to-sleep了解更多信息。
关于mysql - 在 MySQL 命令 : sleep 中显示 PROCESSLIST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194241/