mysql profiler“发送数据" [英] mysql profiler "Sending data"

查看:74
本文介绍了mysql profiler“发送数据"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在任何地方都有这些状态的解释吗?

Is there an explanation of these statuses anywhere?

http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html

关于此查询,我的具体问题是

my specific question is in regards to this query:

select count(*)
from 135_5m.record_updates u, 135_5m.records r
where  r.record_id = u.record_id  and 
  (u.date_updated > null or null is null)  and 
  u.date_updated <= '2011-01-03';

返回单个数字-4053904.那么为什么大部分时间都花在发送数据"上?只是名字不好用吗?当然,发送数据"必须要做的不仅仅是发送数据?

which returns a single number - 4053904. So why would the majority of the time be spent in "Sending data"? Is it just poorly named? Surely "Sending data" must be doing more than just sending data?

+--------------------------------+-----------+-------+
| Status                         | Duration  | Swaps |
+--------------------------------+-----------+-------+
| starting                       |  0.000224 |     0 |
| checking query cache for query |  0.000188 |     0 |
| checking permissions           |  0.000012 |     0 |
| checking permissions           |  0.000017 |     0 |
| Opening tables                 |  0.000036 |     0 |
| System lock                    |  0.000015 |     0 |
| Table lock                     |  0.000067 |     0 |
| init                           |  0.000105 |     0 |
| optimizing                     |  0.000052 |     0 |
| statistics                     |  0.000254 |     0 |
| preparing                      |  0.000061 |     0 |
| executing                      |  0.000017 |     0 |
| Sending data                   | 32.079549 |     0 |
| end                            |  0.000036 |     0 |
| query end                      |  0.000012 |     0 |
| freeing items                  |  0.000089 |     0 |
| storing result in query cache  |  0.000022 |     0 |
| logging slow query             |  0.000008 |     0 |
| logging slow query             |  0.000008 |     0 |
| cleaning up                    |  0.000011 |     0 |
+--------------------------------+-----------+-------+

推荐答案

http://dev.mysql.com/doc/refman/5.0/en/general-thread-states.html

执行意味着线程已经开始执行,发送数据显然涵盖了行的处理以及将计数发送回客户端.

Executing means the thread has started execution, Sending data apparently covers both the processing of the rows and sending the count back to the client.

这篇关于mysql profiler“发送数据"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆