小编给大家分享一下如何使用性能模式查看侧写,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
显示个人资料可以用来关系型数据库执行语句时候所使用的资源(诸如IO,上下文切换,中央处理器,内存等等),但是从MySQL 5.6.7开始此特性将被移除,而使用性能模式代替,如下:
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' |
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; |
mysql>show profile for query 2; |
6.查找刚才执行SQL的EVENT_ID,这步骤类似于show profiles查看query id.通过查询表events_statements_history_long获得对应的EVENT_ID
注:此处只为了说明问题,可能还查询到很多其他的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; |
如上,实现了通过Performance Schema来查询profileing相关信息,最终能看到的选项跟show profile显示的选项几乎一样,只是各项的值好像不太一致。
看完了这篇文章,相信你对“如何使用Performance Schema查看Profiling”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52402.html