ПРОФИЛЬ отображения общего времени Mysql отличается от профилей ОТОБРАЖЕНИЯ

#mysql #sql-tuning #database-tuning

#mysql #sql-настройка #настройка базы данных

Вопрос:

Может ли кто-нибудь помочь мне с этим вопросом?

Когда я выполняю команду SHOW PROFILES, я получаю продолжительность времени, которая отличается от команды SHOW PROFILE (без «S»), в данном случае, какую из них я должен учитывать?

например: для ПРОФИЛЕЙ ОТОБРАЖЕНИЯ

 query  | DURATION
53       0.08104775 
  

для ПОЛУЧЕНИЯ ИНФОРМАЦИИ_SCHEMA.ПРОФИЛИРОВАНИЕ (ПОКАЗАТЬ ПРОФИЛЬ)

 SET @query_id := 53;
 SELECT SUM(Total_R) FROM (
SELECT STATE, SUM(DURATION) AS Total_R,
       ROUND(
          100 * SUM(DURATION) /
             (SELECT SUM(DURATION)
              FROM INFORMATION_SCHEMA.PROFILING
              WHERE QUERY_ID = @query_id
          ), 2) AS Pct_R,
       COUNT(*) AS Calls,
       SUM(DURATION) / COUNT(*) AS "R/Call"
    FROM INFORMATION_SCHEMA.PROFILING
    WHERE QUERY_ID = @query_id
    GROUP BY STATE 
    ORDER BY Total_R DESC ) AS X ;
  

введите описание изображения здесь

 query  | TOTAL DURATION
53       0.000430
  

Я запутался в том, какое время является правильным.

Ответ №1:

Простой запрос SUM (…), похоже, выдает практически то же значение, что и столбец SHOW PROFILES «продолжительность»:

 mysql> SET profiling = 1;
mysql> SELECT SQRT(100);
 ----------- 
| SQRT(100) |
 ----------- 
|        10 |
 ----------- 
1 row in set (0.02 sec)

mysql> SHOW PROFILES;
 ---------- ------------ ------------------ 
| Query_ID | Duration   | Query            |
 ---------- ------------ ------------------ 
|        1 | 0.00010700 | SELECT SQRT(100) |
 ---------- ------------ ------------------ 
1 row in set, 1 warning (0.01 sec)

mysql> SELECT SUM(DURATION) FROM information_schema.PROFILING WHERE QUERY_ID = 1;
 --------------- 
| SUM(DURATION) |
 --------------- 
|      0.000108 |
 --------------- 
  

(протестировано на MySQL 5.1 и Percona 8.0)

Я пока не понимаю разницы между значениями продолжительности профилирования (0.000107 и 0.000108) и временем, указанным прямо под результатом запроса («1 строка в наборе (0.02 сек)»).