mysql中的prof是什么意思_MySQL proflile查询SQL执行性能

博客文章除注明转载外,均为原创。sql消耗内存的性能指标

(mysql5.7)root@localhost [(none)]>  show profile memory for query 2;

+----------------------+----------+

| Status               | Duration |

+----------------------+----------+

| starting             | 0.000130 |

| checking permissions | 0.000012 |

| Opening tables       | 0.134251 |

| init                 | 0.000023 |

| System lock          | 0.000011 |

| optimizing           | 1.163107 |

| executing            | 0.000019 |

| end                  | 0.000004 |

| query end            | 0.000008 |

| closing tables       | 0.000032 |

| freeing items        | 0.000029 |

| cleaning up          | 0.000020 |

+----------------------+----------+

12 rows in set, 1 warning (0.00 sec)

sql消耗io的性能指标

(mysql5.7)root@localhost [(none)]>  show profile block io for query 2;

+----------------------+----------+--------------+---------------+

| Status               | Duration | Block_ops_in | Block_ops_out |

+----------------------+----------+--------------+---------------+

| starting             | 0.000130 |            0 |             8 |

| checking permissions | 0.000012 |            0 |             0 |

| Opening tables       | 0.134251 |           96 |             0 |

| init                 | 0.000023 |            0 |             0 |

| System lock          | 0.000011 |            0 |             0 |

| optimizing           | 1.163107 |         5088 |             0 |

| executing            | 0.000019 |            0 |             0 |

| end                  | 0.000004 |            0 |             0 |

| query end            | 0.000008 |            0 |             0 |

| closing tables       | 0.000032 |            0 |             0 |

| freeing items        | 0.000029 |            0 |             0 |

| cleaning up          | 0.000020 |            0 |             0 |

+----------------------+----------+--------------+---------------+

12 rows in set, 1 warning (0.00 sec)

也可以联合起来查询

(mysql5.7)root@localhost [(none)]>  show profile block io,cpu for query 2;

+----------------------+----------+----------+------------+--------------+---------------+

| Status               | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |

+----------------------+----------+----------+------------+--------------+---------------+

| starting             | 0.000130 | 0.000000 |   0.000000 |            0 |             8 |

| checking permissions | 0.000012 | 0.000000 |   0.000000 |            0 |             0 |

| Opening tables       | 0.134251 | 0.001000 |   0.000000 |           96 |             0 |

| init                 | 0.000023 | 0.000000 |   0.000000 |            0 |             0 |

| System lock          | 0.000011 | 0.000000 |   0.000000 |            0 |             0 |

| optimizing           | 1.163107 | 0.000000 |   0.013998 |         5088 |             0 |

| executing            | 0.000019 | 0.000000 |   0.000000 |            0 |             0 |

| end                  | 0.000004 | 0.000000 |   0.000000 |            0 |             0 |

| query end            | 0.000008 | 0.000000 |   0.000000 |            0 |             0 |

| closing tables       | 0.000032 | 0.000000 |   0.000000 |            0 |             0 |

| freeing items        | 0.000029 | 0.000000 |   0.000000 |            0 |             0 |

| cleaning up          | 0.000020 | 0.000000 |   0.000000 |            0 |             0 |

+----------------------+----------+----------+------------+--------------+---------------+

12 rows in set, 1 warning (0.00 sec)

也可以通过sql语句查询

(mysql5.7)root@localhost [(none)]> select min(seq) seq,state,count(*) numb_ops,

->     round(sum(duration),5) sum_dur, round(avg(duration),5) avg_dur,

->     round(sum(cpu_user),5) sum_cpu, round(avg(cpu_user),5) avg_cpu

->     from information_schema.profiling

->     where query_id = 2

->     group by state

->     order by seq;

+------+----------------------+----------+---------+---------+---------+---------+

| seq  | state                | numb_ops | sum_dur | avg_dur | sum_cpu | avg_cpu |

+------+----------------------+----------+---------+---------+---------+---------+

|    2 | starting             |        1 | 0.00013 | 0.00013 | 0.00000 | 0.00000 |

|    3 | checking permissions |        1 | 0.00001 | 0.00001 | 0.00000 | 0.00000 |

|    4 | Opening tables       |        1 | 0.13425 | 0.13425 | 0.00100 | 0.00100 |

|    5 | init                 |        1 | 0.00002 | 0.00002 | 0.00000 | 0.00000 |

|    6 | System lock          |        1 | 0.00001 | 0.00001 | 0.00000 | 0.00000 |

|    7 | optimizing           |        1 | 1.16311 | 1.16311 | 0.00000 | 0.00000 |

|    8 | executing            |        1 | 0.00002 | 0.00002 | 0.00000 | 0.00000 |

|    9 | end                  |        1 | 0.00000 | 0.00000 | 0.00000 | 0.00000 |

|   10 | query end            |        1 | 0.00001 | 0.00001 | 0.00000 | 0.00000 |

|   11 | closing tables       |        1 | 0.00003 | 0.00003 | 0.00000 | 0.00000 |

|   12 | freeing items        |        1 | 0.00003 | 0.00003 | 0.00000 | 0.00000 |

|   13 | cleaning up          |        1 | 0.00002 | 0.00002 | 0.00000 | 0.00000 |

+------+----------------------+----------+---------+---------+---------+---------+

12 rows in set, 1 warning (0.00 sec)

(mysql5.7)root@localhost [(none)]> SELECT STATE, SUM(DURATION) AS Total_R,ROUND( 100 * SUM(DURATION) / (SELECT SUM(DURATION)

->    FROM INFORMATION_SCHEMA.PROFILING

->     WHERE QUERY_ID = 2), 2) AS Pct_R, COUNT(*) AS Calls,SUM(DURATION) / COUNT(*) AS "R/Call"

->      FROM INFORMATION_SCHEMA.PROFILING  WHERE QUERY_ID = 2 GROUP BY STATE

->  ordER BY Total_R DESC;

+----------------------+----------+-------+-------+--------------+

| STATE                | Total_R  | Pct_R | Calls | R/Call       |

+----------------------+----------+-------+-------+--------------+

| optimizing           | 1.163107 | 89.63 |     1 | 1.1631070000 |

| Opening tables       | 0.134251 | 10.35 |     1 | 0.1342510000 |

| starting             | 0.000130 |  0.01 |     1 | 0.0001300000 |

| closing tables       | 0.000032 |  0.00 |     1 | 0.0000320000 |

| freeing items        | 0.000029 |  0.00 |     1 | 0.0000290000 |

| init                 | 0.000023 |  0.00 |     1 | 0.0000230000 |

| cleaning up          | 0.000020 |  0.00 |     1 | 0.0000200000 |

| executing            | 0.000019 |  0.00 |     1 | 0.0000190000 |

| checking permissions | 0.000012 |  0.00 |     1 | 0.0000120000 |

| System lock          | 0.000011 |  0.00 |     1 | 0.0000110000 |

| query end            | 0.000008 |  0.00 |     1 | 0.0000080000 |

| end                  | 0.000004 |  0.00 |     1 | 0.0000040000 |

+----------------------+----------+-------+-------+--------------+

12 rows in set, 2 warnings (0.00 sec)

---The end

(mysql5.7)root@localhost [(none)]> set profiling = off;

Query OK, 0 rows affected, 1 warning (0.00 sec)

阅读(1077) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值