本篇文章给大家谈谈mysqlprofile,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
查看MySQL执行语句 资源消耗 show profile
mysql提供可以用来分析当前会话中语句执行的资源消耗的情况乎或,可以用于SQL的调优的测量
默认情况下,参数处于关闭状态,保存最近15次的运行结果
分析步骤
1、查看当前版本是否支持
show variables like 'profiling'
2、开启功能
set profiling =on;
3、运行SQL
4、执行
show profiles;
可以看到每条SQL的执行耗时情况
5、诊断SQL
show profile cpu,block io for query [ 查询ID号];
show profile cpu,block io for query 10;
ALL 所有的开销信息
BLOCK IO 块IO相关开销
CONTEXT SWITCHES 上下文切换次数开销,被动和主动
CPU CPU相关开销信息
IPC 发送和接受相关开销信息
MEMORY 内存相关开销信息
PAGE FAULTS 页面错误相关开销信息
SOURCE Source_function,Source_file,Source_line相关的开销信息
SWAPS 交换次数相关开销的信息
需要注意
concerting HELP to MyISAM 查裤缓询结胡顷模果太大,内存都不够用了往磁盘上搬了
Creating tmp table 创建临时表 拷贝数据到临时表,用完再删除
Copying to tmp table on disk 把内存中临时表复制到磁盘
[img]MySQL show profile
1. 是什么?
是MySQL提供的可以用来分析当前会话中语句执行的资源消耗情况的工具,可以用于sql调优的测量。默认是处于关闭状态的,会保存最近15次的运行结果。
2. 查看状态:
执行如下命令即可查看profile的状态:
可以看到,现在是关闭的。
3. 开启功能:
可以执行如下语句将其开启:
4. 运行sql:
因为上面我们已经开启了profile,所以执行的sql都会被记录到相关文行兄件中,下面我们随便执行几段sql。
5. show profile:
执行了sql之后,来查看show profile的结果:
查出来可以看到,执行过的sql这里都有记录,前面有对应的id。然后我们可以根据id,查出该条sql执行时的cpu、io等情况,比如我要查看id为14的这条sql执行情况,那么就执行:
可以看到,查出来的结果就涵盖了sql执行过程中的整个生命周期,从校验权限、打档模袭开码悉表开始,一直到查询结束,cleaning up。每个过程的cpu和io情况都对应的展示出来了。上面我们查询的字段是cpu和block io,那还有其他的吗?当然有,如下表:
查出来之后,我们要怎么知道生命周期中的哪个步骤有猫病呢?主要观察如下四个:
如果查出来的status列包含了上述四个中的一个,都是会拖慢sql的执行速度的。
6. 全局查询日志:
这个主要是用于开发、测试环境用来排查问题的,永远不要中在生产环境中开启此功能,因为日志会非常非常多。
启用方式有两种:
执行完之后,此后所执行的sql都会保存到mysql库的general_log表里。
Mysql-性能分析-Profiling
Show Profile 是mysql提供可以用来分析 当前会话 中语句执行的资源消耗情况,可以用于Sql调优的测量。
请读者继续看前面的图 SQL执行具体细节 ,左边 Status 列展示了一条SQL执行的从开始到清理的整个生命周期中执行的操作。如果在其带脊生命周期阶段出现如下的情况的就要重视了:
开启雀孝 Profiling 后,mysql会留下15条最近执行的sql的 现场 , 便于蠢岁渗我们发现问题。
Show profiles 用来查最近的15条。
Show profile 用来展示每一个SQL执行阶段的耗时清单,便于我们发现耗时最多的地方,然后以此为依据查找问题所在,最后优化SQL或者优化mysql参数。比如耗时清单创建了临时表,就要考虑表是否创建索引,如果创建了那么是否没有用到或者失效了。
总的来说 Profiling 是一个很不错的mysql性能分析工具。
关于mysqlprofile和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。