mysql的profiling

Mysql自带profiling性能分析工具

 

MySQL 的 Query Profiler 是一个使用非常方便的 Query 诊断分析工具,通过该工具可以获取一条Query 在整个执行过程中多种资源的消耗情况,如 CPU,IO,IPC,SWAP 等,以及发生的 PAGE FAULTS,CONTEXT SWITCHE 等等,同时还能得到该 Query 执行过程中 MySQL 所调用的各个函数在源文件中的位置。

MySQL5.0.37版本以上支持PROFILING调试功能,让您可以了解SQL语句消耗资源的详细信息。因为它需要调用系统的getrusage()函数,所以只是在Linux/Unix类平台上才能使用,而不能在Windows平台上使用。而且,PROFILING是针对处理进程(process)而不是线程(thread)的,服务器上的其他应用,可能会影响您的调试结果,因此,这个工具适合开发过程中的调试,如果要在生产环境中调试使用,则要注意它的局限性。

  1. show variables like '%profiling%';(查看profiling信息)  

2. set profiling=1;(开启profiling)

3. 执行SQL查询 

例:select goods_name from ecs_goods where goods_id <5000;

show  profiles;

4. show profile for query 4;

show profile 的格式如下:

5 使用show profile查询最近一条语句的执行信息。


6使用show profile查询制定ID的执行信息。这里分析ID为6的语句。

mysql> show profile for query 6;

7 获取 CPU 和 Block IO 的消耗。

show profile block io,cpu for query 6;

参考地址

https://dev.mysql.com/doc/refman/5.6/en/show-profile.html