一、定义
- 是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量
- 默认情况下参数处于关闭状态,并保存最近15次的运行结果
- 查看是否支持
show variables like 'profiling'

- 开启show profile
set profiling = on

- 查看profiles
show profiles

- 诊断SQL
show profile cpu,block io for query --上面查出来的query_id

- 结论–status出现下面四个SQL就会有问题
- converting heap to myisam 查询结果太大,内存不够用往磁盘上搬了
- craeting tmp table 创建临时表
- copying to tmp table on disk 把内存中临时表复制到磁盘,危险
- locked
二、全局查询日志----必须测试环境,永远不要在生产环境中启用
- 开启全局日志
set global general_log=1;
set global log_output='TABLE'

此后,你所编写的SQL语句,将会记录到mysql库里的general_log表,可以用下面的命令查看
select * from mysql.general_log

三、总结
- 实际生产中如何排查SQL慢问题?
- 慢查询开启并捕获
- explain+慢SQL分析
- show profile 查询SQL在MySQL服务器里面的执行细节和生命周期情况
- SQL数据库服务器的参数调优
本文详细介绍了MySQL的profiling功能,用于分析SQL执行效率,以及如何通过设置变量开启和查看profile信息。同时,全球查询日志的使用和注意事项也进行了阐述,为解决生产环境中的SQL慢查询提供了实用技巧。
1495

被折叠的 条评论
为什么被折叠?



