一、定义
- 是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数据库服务器的参数调优