MySQL профилировщик "Отправка данных" - PullRequest
7 голосов
/ 03 сентября 2010

Есть ли где-нибудь объяснение этих статусов?

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

Мой конкретный вопрос касается этого запроса:

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. Так почему бы большую часть времени проводить в «Отправке данных»?Это просто плохо названо?Конечно, «Отправка данных» должна делать больше, чем просто отправка данных?

+--------------------------------+-----------+-------+
| 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 |
+--------------------------------+-----------+-------+

Ответы [ 2 ]

10 голосов
/ 07 сентября 2010

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

Выполнение означает, что поток запустил выполнение. Очевидно, что отправка данных охватывает как обработку строк, так и отправку отсчета обратно клиенту.

0 голосов
/ 20 сентября 2011

перед отправкой данных клиенту mysql необходимо прочитать данные, фаза считывания данных может занять большое время "отправки данных"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...