首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL命令中显示PROCESSLIST : sleep

在MySQL命令中显示PROCESSLIST : sleep
EN

Stack Overflow用户
提问于 2012-08-30 17:53:55
回答 4查看 148.7K关注 0票数 92

当我在MySQL数据库中运行SHOW PROCESSLIST时,我得到以下输出:

代码语言:javascript
复制
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 | 
+--------+------+-----------+-------+---------+-------+-------+------------------------+

我想知道命令下的“睡眠”过程。什么意思?为什么它运行了很长一段时间并显示为空?这会使数据库变慢,当我杀死进程时,它就会正常工作。请帮帮我。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-04 22:36:01

它不是一个等待连接的查询;它是一个等待超时终止的连接指针。

它不会对性能产生影响。它唯一使用的就是几个字节,就像每个连接一样。

真正最糟糕的情况是:它使用您的池中的一个连接;如果您通过控制台客户端多次连接,并且只关闭客户端而不关闭连接,那么您可能会用完所有连接,并且必须等待超时才能再次连接...但这是非常不可能的:-)

有关详细信息,请参阅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

票数 83
EN

Stack Overflow用户

发布于 2013-01-04 04:12:15

“睡眠”状态连接通常由维护与数据库的持久连接的代码创建。

这可能包括应用程序框架创建的连接池,也可能包括客户端数据库管理工具。

正如上面评论中提到的,真的没有理由担心这些连接……当然,除非您不知道连接来自何处。

(注意:如果您有一个很长的此类连接列表,则可能会出现同时连接耗尽的危险。)

票数 28
EN

Stack Overflow用户

发布于 2018-03-12 19:36:45

我在这里找到了答案:https://dba.stackexchange.com/questions/1558。简而言之,使用以下命令(或在my.cnf中)将消除超时问题。

SET GLOBAL interactive_timeout = 180; SET GLOBAL wait_timeout = 180;

这允许连接在睡眠状态保持3分钟(或您定义的任何状态)时结束。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12194241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档