MySQL如何跟踪sql语句各阶段性能开销


关键词

mysql sql优化 性能 开销

摘要

在性能调优中分析SQL执行带来的开销是优化SQL的常用手段,在MySQL中可以使用profiling参数对sql进行分析。
在性能调优中分析SQL执行带来的开销是优化SQL的常用手段,在MySQL中可以使用profiling参数对sql进行分析。
1、查看与profile相关的三个参数;
mysql> show variables like '%profil%';


have_profiling 用于控制是否由系统变量开启或禁用profiling
profiling 是否开启profiling分析功能
profiling_history_size 设置profiling的保留数目

2、开启profiling分析
mysql> set profiling=1;

3、执行一条sql语句;

4、sql执行完成后查看profile概要信息;
mysql> show profiles;


上图可以看到保存了1条执行结果(最多保留最近的15条,就是上述profiling_history_size参数控制的)


5、查看单个Query详细的profile信息,下面看执行时间和CPU开销,query后面的1就是上图中的Query_ID
mysql> show profile cpu for query 1;


因为测试sql是从百万条文章详情中查询,所以在上图可以看出sql在Sending data执行了4.1秒,CPU使用也非常高

6、关闭profiling
mysql> set profiling=0;

7、除了可以查看执行时间和CPU消耗外,还可以查看磁盘io、swap交换、内存等资源的开销情况。如(有些参数Windows下不可使用)
mysql> show profile cpu,block io,memory,swaps for query 1;


 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:MySQL如何跟踪sql语句各阶段性能开销:http://www.splaybow.com/post/134859151120193981.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« MYSQL表损坏与修复 mysql的超大数字类型bigint »