MySQL入门教程(20)使用PROFILE进行SQL性能分析

TangLu MySQL 2022-12-30 1342 0

一、MySQL profile的作用

MySQL的show profiles命令可以将SQL在整个执行过程中的资源消耗进行统计,包含I/O、CPU、SWAP等。通常可以结合EXPLAIN来对慢查询语句进行分析,方便定位SQL性能瓶颈以实现优化。未来不久SHOW PROFILE命令将被弃用,但是可以从information_schema.profiling表中进行查看。


二、profile使用方法

1、在当前会话开启profile

mysql > set profiling=1;


2、执行需要进行统计的SQL

mysql > select * from test limit 10;


3、查看当前产生的所有QUERY ID

mysql > show profiles;


4、根据QUERY ID可以查询到会话执行过的每一个SQL的耗时情况,分析瓶颈。如果消耗时间大部分花费在executing上,说明是SQL语句执行过长,然后可以使用EXPLAIN进一步优化

#查询上一个语句的执行情况
mysql > show profile;
#查询指定QUERY ID的执行情况
mysql > show profile for query 1;

profile1.jpg


5、除了使用profile以外,还可以根据handler信息进行分析

flush status; 清空当前会话的status信息
select * from test limit 10;
show status like '%handler%';  
show status like '%tmp%table';  sql是否创建临时表


评论