首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL性能缓慢和休眠查询

问MySQL性能缓慢和休眠查询
EN

Stack Overflow用户
提问于 2012-04-28 19:44:28
回答 2查看 13.1K关注 0票数 2

最近,我注意到我的网站每天凌晨加载AJAX数据的速度非常慢。使用Chrome浏览器中的Web Developer功能,通常的300-500ms等待和100-300ms接收的速度可以增加到5秒!该网站使用jQuery、Codeigniter/PHP和MySQL。

我检查了我的VPS的支持服务台,他们提到有太多的睡眠查询。

代码语言:javascript
复制
There are many sleep queries for the database 'databasename'.

| 4341 | mysqluser | 204.197.252.106:48669 | databasename | Sleep | 19 | | |
| 4373 | mysqluser | 204.197.252.106:59966 | databasename | Sleep | 78 | | |
| 4387 | mysqluser | 204.197.252.106:34807 | databasename | Sleep | 46 | | |
| 4388 | mysqluser | 204.197.252.106:35099 | databasename | Sleep | 6 | | |
| 4390 | mysqluser | 204.197.252.106:35452 | databasename | Sleep | 26 | | |
| 4391 | mysqluser | 204.197.252.106:35589 | databasename | Sleep | 7 | | |
| 4392 | mysqluser | 204.197.252.106:35680 | databasename | Sleep | 19 | | |
| 4393 | mysqluser | 204.197.252.106:36264 | databasename | Sleep | 12 | | |
| 4394 | mysqluser | 204.197.252.106:36327 | databasename | Sleep | 11 | | |

这是早上减速的原因吗?我怎样才能找出导致速度减慢的原因并摆脱它呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-28 19:56:50

  1. 这些睡眠查询只是打开的连接。我不会被他们困扰,除非他们数以百计。
  2. 要诊断慢查询的问题,您需要获取slow query log。如果关闭了慢查询日志记录,请立即将其打开。
  3. 一旦你有了合适的日志文件,你就需要用explain来分析运行缓慢的查询。Explain将允许查看Mysql的查询规划器和分析器是如何执行您的查询的。
  4. 还将运行速度最慢的查询的explain输出与表架构一起粘贴到此处,以便我们可以更好地诊断您的问题。
票数 8
EN

Stack Overflow用户

发布于 2013-11-08 15:43:18

如果你想终止休眠连接,你可以这样做:以admin身份登录Mysql:

代码语言:javascript
复制
 mysql -uroot -ppassword;

然后运行命令:

代码语言:javascript
复制
mysql> show processlist;

您将得到如下所示的内容:

代码语言:javascript
复制
+----+-------------+--------------------+----------+---------+------+-------+------------------+
| Id | User        | Host               | db       | Command | Time | State | Info             |
+----+-------------+--------------------+----------+---------+------+-------+------------------+
| 49 | application | 192.168.44.1:51718 | XXXXXXXX | Sleep   |  183 |       | NULL             ||
| 55 | application | 192.168.44.1:51769 | XXXXXXXX | Sleep   |  148 |       | NULL             |
| 56 | application | 192.168.44.1:51770 | XXXXXXXX | Sleep   |  148 |       | NULL             |
| 57 | application | 192.168.44.1:51771 | XXXXXXXX | Sleep   |  148 |       | NULL             |
| 58 | application | 192.168.44.1:51968 | XXXXXXXX | Sleep   |   11 |       | NULL             |
| 59 | root        | localhost          | NULL     | Query   |    0 | NULL  | show processlist |
+----+-------------+--------------------+----------+---------+------+-------+------------------+

您将看到不同连接的完整详细信息。现在您可以关闭休眠连接,如下所示:

代码语言:javascript
复制
mysql> kill 52;
Query OK, 0 rows affected (0.00 sec)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10363160

复制
相关文章

相似问题

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