Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql语句性能分析工具profiling

mysql语句性能分析工具之profiling用法

作者:zyjzyjjyzjyz

这篇文章主要介绍了mysql语句性能分析工具之profiling用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

以往我们已经介绍了一个mysql的分析工具:mysql慢查询日志分析工具(pt-query-digest),可以看我的文章:mysql慢查询日志分析工具(pt-query-digest)

一、profiling的介绍

sql查询慢的情况很常见,对于慢sql的优化有三个步骤,又称优化三板斧。

如果执行计划正确sql语句的性能还很慢,可以通过mysql的profiling工具进行定位分析。

为了更精准的定位一条sql语句的性能问题,需要清楚的直到这条sql语句运行时消耗多少系统资源。

mysql中profiling工具可以满足此需求,通过该工具可以获取一条sql语句在执行过程中多种资源的消耗情况——比如cpu,io,ipc,swap等资源消耗情况。

二、profiling使用方法

2.1、启用命令

set profiling = 1;

2.2、启动命令后,运行想要查询性能的sql语句

select * from xiatui where name like '0%' and age = '9803' and sex =0;

2.3、查询上述sql语句信息

show profiles;

 说明:

2.4、查询资源消耗情况

SHOW PROFILE CPU, BLOCK IO FOR QUERY 360;

上述360就是第三步骤的Query_ID值,想要查询哪条sql语句,就输入哪条sql语句对应的id值。

2.5、查询某条sql语句的具体执行时间

SHOW PROFILE FOR QUERY 391;

优化建议:

如果想要优化某条sql语句,可以关注一下该条sql语句的show profile结果中每个阶段的耗时,分析耗时最长的阶段。

如果status列出现下面的信息就可以考虑对sql语句进行优化:

2.6、关闭

set profiling = 0;

三、整体使用过程

set profiling = 1;
select /*+ no_icp(xiatui) */ * from xiatui where name like '0%' and age = '9803' and sex =0;
select * from xiatui where name like '0%' and age = '9803' and sex =0;
show profiles;
set profiling = 0;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文