1、查看profile开关是否开启:profiling值为OFF未开启
mysql> show variables like '%prof%';
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6f4e508d744721848aed3335533d6fd3.png)
2、开启profile开关
开启开关:
mysql> set profiling=1;
若想调整捕捉到的sql语句为20条,只需如下操作,默认为15条,本次未调整,采取默认
mysql > set profiling_history_size=10
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/305795100ce3b9cf791f249530688990.png)
3、显示捕捉的sql语句
mysql> show profiles
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1c6b7d118b4f6f278325e6650fa2e2c2.png)
4、根据sql语句的query_id查看详情
eg:查看query_ID为7的资源情况:
mysql> show profile for query 7;
或查看query_ID为7的所有资源情况
mysql> show profile all for query 7;
或查看query_ID为7的cpu的情况
mysql> show profile cpu for query 7;
需重点关注前两点,其余留给开发关注
列duration:时间
1、system clock:锁争用时间,若duration对应的时间比较大,高并发的设计可能有问题
2、optimizing:查询优化器,若对应的duration较大,则sql语句或索引设计可能有问题。
3、sending data:返回给客户端的数据消耗的时长若较大,业务逻辑、代码或sql语句可能有问题