如何使用Performance Schema查看Profiling

技术如何使用Performance Schema查看Profiling小编给大家分享一下如何使用Performance Schema查看Profiling,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!S

小编给大家分享一下如何使用性能模式查看侧写,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

显示个人资料可以用来关系型数据库执行语句时候所使用的资源(诸如IO,上下文切换,中央处理器,内存等等),但是从MySQL 5.6.7开始此特性将被移除,而使用性能模式代替,如下:

如何使用Performance  Schema查看Profiling

setup_actors 配置

MySQL 5.7.8,可以通过设置_参与者表来配置主机、用户或帐户的信息被收集,如下:

#默认情况下设置_参与者的配置是允许监控和收集所有前台线程的历史事件信息

选择*从

性能模式。setup _ actors

- - - - -

|主机|用户|角色|已启用|历史记录|

- - - - -

| % | % | %

|是|是|

- - - - -

一行一组(0.03秒)

#修改默认的配置,关闭对所有前台线程的监控和收集。并且插入新的行为指定的用户开启监控和收集信息

关系型数据库

更新性能_模式。设置_参与者设置已启用='否,历史记录='否'

-其中主机="%"和用户="%";

MySQL INSERT INTO performance _ schema。设置_参与者

(主机、用户、角色、已启用、历史记录)

- VALUES('localhost ',' test_user ',' % ',' YES ',' YES ');

#修改后的配置如下:

MySQL SELECT * FROM performance _ schema。setup _ actors

- - - - -

|主机|用户|角色|已启用|历史记录|

- - - - -

| % | % | % |否|否|

| localhost | test _ user | % | YES | YES |

- - - - -

#只监控和收集test_user@localhost用户相关的事件信息

Query Profiling Using Performance Schema

下文简单尝试下使用Performance Schema来查询profile相关信息,使用方法如下

1.开启setup_instruments表中statement和stage instrumentation相关配置,其中有些可能默认已经开启

MySQL UPDATE performance _ schema。设置_仪器设置启用='是',定时='是'

-哪里名字像' %语句/% ';

MySQL UPDATE performance _ schema。设置_仪器设置启用='是',定时='是'

r/>-> WHERE NAME LIKE '%stage/%';

2.开启events_statements_* and events_stages_*相关消费(consumers),有些项目已经默认开启

mysql> UPDATE performance_schema.setup_consumers SET ENABLED = 'YES'
-> WHERE NAME LIKE '%events_statements_%';
mysql> UPDATE performance_schema.setup_consumers SET ENABLED = 'YES'
-> WHERE NAME LIKE '%events_stages_%';

3.为了与show profile的结果做对比,开启profiling功能

mysql >set profiling=1;

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

mysql >show warnings; #此处,也可以看到此特性将被移除的警告

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

| Level | Code | Message |

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

| Warning | 1287 | '@@profiling' is deprecated and will be removed in a future release. |

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

1 row in set (0.00 sec)

4.执行SQL语句

mysql >select * from t;

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

| 9 | 15 |

| 10 | 15 |

| 2 | 20 |

| 3 | 20 |

| 8 | 25 |

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

5 rows in set (0.00 sec)5 rows in set (0.00 sec)

5.查看profiling结果

mysql>show profiles;
+----------+------------+-----------------+
| Query_ID | Duration | Query |
+----------+------------+-----------------+
| 1 | 0.00010150 | show warnings |
| 2 | 0.00032075 | select * from t |
+----------+------------+-----------------+
2 rows in set, 1 warning (0.00 sec)

mysql>show profile for query 2;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000038 |
| checking permissions | 0.000009 |
| Opening tables | 0.000048|
| init | 0.000022 |
| System lock | 0.000012 |
| optimizing | 0.000007 |
| statistics | 0.000016 |
| preparing | 0.000015 |
| executing | 0.000005 |
| Sending data | 0.000063 |
| end | 0.000008 |
| query end | 0.000009 |
| closing tables | 0.000013 |
| freeing items | 0.000012 |
| cleaning up | 0.000050 |
+----------------------+----------+
15 rows in set, 1 warning (0.00 sec)

6.查找刚才执行SQL的EVENT_ID,这步骤类似于show profiles查看query id.通过查询表events_statements_history_long获得对应的EVENT_ID

如何使用Performance Schema查看Profiling

注:此处只为了说明问题,可能还查询到很多其他的SQL,但是我们自己知道我们执行的SQL是哪条,其他的SQL此处都被省略了

7.通过查询events_stages_history_long表(NESTING_EVENT_ID=EVENT_ID)获得最终结果

mysql>SELECT event_name AS Stage, TRUNCATE(TIMER_WAIT/1000000000000,6) AS Duration

>FROM performance_schema.events_stages_history_long WHERE NESTING_EVENT_ID=79;
+--------------------------------+----------+
| Stage | Duration |
+--------------------------------+----------+
| stage/sql/init | 0.000048 |
| stage/sql/checking permissions | 0.000008 |
| stage/sql/Opening tables | 0.000051 |
| stage/sql/init | 0.000019 |
| stage/sql/System lock | 0.000012 |
| stage/sql/optimizing | 0.000006 |
| stage/sql/statistics | 0.000016 |
| stage/sql/preparing | 0.000015 |
| stage/sql/executing | 0.000004 |
| stage/sql/Sending data | 0.000066 |
| stage/sql/end | 0.000005 |
| stage/sql/query end | 0.000008 |
| stage/sql/closing tables | 0.000013 |
| stage/sql/freeing items | 0.000011 |
| stage/sql/cleaning up | 0.000001 |
+--------------------------------+----------+
15 rows in set (0.01 sec)

如上,实现了通过Performance Schema来查询profileing相关信息,最终能看到的选项跟show profile显示的选项几乎一样,只是各项的值好像不太一致。

看完了这篇文章,相信你对“如何使用Performance Schema查看Profiling”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52402.html

(0)

相关推荐

  • Flex布局新旧混合写法分析

    技术Flex布局新旧混合写法分析本篇内容主要讲解“Flex布局新旧混合写法分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flex布局新旧混合写法分析”吧!旧语法篇定义容器

    攻略 2021年11月15日
  • python多线程如何秒爬猫眼电影

    技术python多线程如何秒爬猫眼电影这篇文章主要介绍python多线程如何秒爬猫眼电影,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!通过python3的多线程,获取猫眼电影top100电影清单,

    攻略 2021年11月24日
  • C语言是怎样输出唯一的子串

    技术C语言是怎样输出唯一的子串C语言是怎样输出唯一的子串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 题目描述给一个字符串,求长度为m的所有不重复的子

    攻略 2021年12月8日
  • 问所从来的所,《桃花源记》究竟讲了什么

    技术问所从来的所,《桃花源记》究竟讲了什么《桃花源记》——理想和现实的对白问所从来的所! 《桃花源记》是田园诗人陶渊明写的一篇散文诗般的短文,短文给我们描绘了一个乱世中的天堂——桃花源。这是一个质朴自然化的净土:她宁静和

    生活 2021年10月28日
  • 小年习俗,什么是小年,小年是怎么来的

    技术小年习俗,什么是小年,小年是怎么来的“小年”是我国汉族传统节日,在中国的春节习俗中,扮演了非常重要的角色小年习俗。这一天,通常会通过进行一些沿袭了两千年的习俗,来宣告整个春节庆祝活动的开始。小年是春节的前奏曲,热闹仅

    生活 2021年10月29日
  • 居住证如何办理,居住证怎么办理?需要什么手续

    技术居住证如何办理,居住证怎么办理?需要什么手续以上海为例,办理流程如下居住证如何办理。1、申报居住登记。来沪人员办理居住登记,应当到现居住地的社区事务受理服务中心,填写《居住登记信息表》,并提供本人居民身份证或者户口簿

    生活 2021年10月31日