MySQL分析SQL语句执行资源消耗情况-profile
show profile
show profile是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量
分析步骤
-
首先查看是否支持
show variables like 'profiling';
-
开启profile
set profiling = on;
-
运行sql
-
查看结果
show profiles;
-
诊断SQL语句
show profile cpu,block io for query sql的序号;
参数说明
concerting heap to myisam:查询结果太大,内存不够用了往磁盘上转
create tmp table:创建了临时表
copying to tmp table on disk:把内存中临时表复制到磁盘,危险!
locked
慢日志查询
慢日志查询会将查询时间超过所设置阈值的语句记录下来,默认情况下,MySQL是没有开启慢日志查询的,若不是调优需要,建议也是不开启的。
查看慢查询日志是否开启
show variables like '%slow_query_log%';
开启慢查询日志
set global slow_query_log=1;
若要永久生效,则需要更改配置文件my.cnf
[mysqld]
slow_query_log=1
slow_query_log_flie=/var/lib/mysql/ubuntu-slow.log
查看当前多少秒算慢
show variables like 'long_query_time%';
设置慢查询时间阈值
set global log_query_time=3