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:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

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

相关文章:

mysql的超大数字类型bigint  (2020/2/22 12:23:14)

MySQL如何跟踪sql语句各阶段性能开销  (2019/11/15 13:48:59)

MYSQL表损坏与修复  (2019/9/16 9:48:33)

MySQL中去除字段中的回车符和换行符  (2017/12/11 15:38:09)

MySQL中使用replace函数  (2017/9/11 7:56:39)

MySQL中的外键约束  (2017/7/21 7:19:52)

MySQL内置随机数函数的使用  (2017/2/11 7:23:46)

MySQL表如何选择MyISAM和InnoDB引擎  (2017/1/7 7:23:00)

MySQL索引覆盖  (2017/1/4 7:06:51)

MySQL创建索引,各种索引的创建及举例  (2018/2/1 7:55:28)