一,是什么

官网:http://dev.mysql.com/doc/refman/5.5/en/show-profile.html
Show profiles 是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优测量
默认情况下,参数处于关闭状态,并保存最近15次的运行结果

二,分析步骤

1,是否支持,看看当前的SQL版本是否支持
Show variables like 'profiling';
image.png

2,开启功能,默认是关闭,使用前需要开启
3,运行SQL
select * from emp group by id%10 limit 150000
select * from emp group by id%20 order by 5
4,查看结果,show profiles;
5,诊断SQL,show profile cpu,block io for query上一步前面的问题SQL 数字号码;
image.png
6,日常开发需要注意的结论

  • converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了。
  • Creating tmp table 创建临时表(拷贝数据到临时表/用完再删除)

image.png

  • Copying to tmp table on disk 把内存中临时表复制到磁盘,危险!!!
  • locked

    三,全局查询日志

    0,永远不要在生产环境开启这个功能。
    1,配置启用
    image.png
    2,编码启用
    set golbal general_log=1;
    set global log_output='TABLE';
    select * from mysql.general_log;
    image.png