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

Tanglu MySQL 2022-12-30 948 0

一、MySQL profile的作用

MySQL的profile可以将SQL在整个执行过程中的资源消耗进行统计,包含I/O、CPU、SWAP等,方便定位SQL性能瓶颈以实现优化。未来不久SHOW PROFILE将被弃用,可以从information_schema.profiling表中进行查看


二、profile使用方法

1、在当前会话开启profile

set profiling=1;


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

select * from test limit 10;


3、查看SQL的QUERY ID

show profiles;


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

show profile for query 1;  #可以看到SQL每一步的耗时,分析瓶颈


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

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


评论