Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > время в таблицах performance_schema


Автор: kaa 19.4.2015, 16:34
Всем доброго времени суток!

Возникла необходимость понять на чём "залипает" чтение из InnoDB таблицы:
12000 селектов - 2100ms


Настройки для таймеров статистики:
setup_timers
Код

+-----------+-------------+
| NAME      | TIMER_NAME  |
+-----------+-------------+
| idle      | MICROSECOND |
| wait      | MICROSECOND |
| stage     | MICROSECOND |
| statement | MICROSECOND |
+-----------+-------------+


Содержимое таблицы 
performance_scheme
Код

+-------------+-----------------+------------------+----------------+
| TIMER_NAME  | TIMER_FREQUENCY | TIMER_RESOLUTION | TIMER_OVERHEAD |
+-------------+-----------------+------------------+----------------+
| CYCLE       |      3390287875 |                1 |             18 |
| NANOSECOND  |            NULL |             NULL |           NULL |
| MICROSECOND |         3312695 |                1 |             18 |
| MILLISECOND |            1010 |                1 |             18 |
| TICK        |            3998 |                1 |              0 |
+-------------+-----------------+------------------+----------------+


После прогона запросов, в таблице table_io_waits_summary_by_index_usage следующие цифры:
Код

COUNT_STAR: 12000
AVG_TIMER_WAIT: 18715878

12000 селектов выполнились за 2,218 (С)

Пытаюсь определить, сколько же у меня AVG_TIMER_WAIT, в секундах, на один запрос: 
Код

18715878 / 12000(кол-во запросов в цикле) / 3312695 = 4,7081198238896125360167476933433e-4 (С)


Тоесть получается 470(мкС). 
Но это магия какая-то! Ибо если умножить это значение на количество селектов, то никак они у меня в 2 секунды не укладываются, однако практика показывает обратное - 2,1(с)

Собственно как мне читать эти времена из таблиц?
А то они совершенно бесполезные получаются какие-то.

Автор: kaa 20.4.2015, 11:57
Надо было доки читать внимательнее: http://dev.mysql.com/doc/refman/5.6/en/performance-schema-timing.html


Код

Within events, times are stored in units given by the timer in effect when event timing begins. For display, times are shown in picoseconds (trillionths of a second) to normalize them to a standard unit, regardless of which timer is selected.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)