本文共 2151 字,大约阅读时间需要 7 分钟。
slow_query_log
: 该参数表示是否开启慢SQL查询日志。在mysql中,我们可以通过以下命令来查看和修改该变量的状态
show variables like '%slow_query_log%' #查询该变量在MySQL中当前的状态。set GLOBAL slow_query_log = ON/OFF #开启慢查询监控ON,关闭慢查询监控OFF
开启general_log
执行日志
show variables like "general_log%";#查询该变量在MySQL中当前的状态。set GLOBAL general_log = 'ON';#开启执行日志监控ON,关闭执行日志监控OFF
long_query_time
:设置该参数,可以规定执行多长时间的SQL为慢SQL。
show variables like '%long_query_time%' #查询该变量在MySQL中的状态set long_query_time = 6 #设置SQL执行时间超过6S,就当作慢SQL输出
slow_query_log_file
:设置该参数,可以将慢SQL输出到指定的规定的日志文件。
show variables like '%slow_query_log_file%' #查询该变量在MySQL中的状态set slow_query_log_file = /home/admin/mysql/log/slow_sql.log #指定慢SQL输出的日志文件
log_queries_not_using_indexes
:该参数设置为ON,可以输出所有未使用索引的SQL语句。
show variables like 'log_queries_not_using_indexes' #查询该变量在MySQL中的状态set global log_queries_not_using_indexes = ON/OFF #设置该变量值打开或关闭
log_output
:可以通过该参数,指定慢SQL输出到表或文件中。如果输出到表中在mysql.slow_log表中可以查看。
show variables like 'log_output' #查询该变量在MySQL中的状态set GLOBAL log_output = table/FILE #设置慢SQL输出到table或fileset GLOBAL log_output = 'table,FILE' #设置慢SQL同时输出到table和file
这要在上面中设置输出日志到table中,比如
set GLOBAL log_output = table/FILE #设置慢SQL输出到table或file
同时输出到file和table中 select * from mysql.slow_log
这个是在mysql的库
中
mysqldumpslow -s t -t 10 -g 'log' mysql_slow.log
MySQL自带的慢SQL分析工具
-s
: 按照哪种规则排序
-t
: 显示前几个记录 -g
: 有点像grep, 后跟正则 demo如下
最好在mysql_slow.log
前加全路径,这里的mysql-slow.log
是之前设置的日志输出文件的路径下的文件名,默认就是mysql-slow.log
mysqldumpslow -s t -t 10 /var/lib/mysql/mysql-slow.log
得到返回记录集最多的10条SQL
mysqldumpslow -s r -t 10 /var/lib/mysql/mysql-slow.log
得到按照查询时间排序,并且带有left join的10条SQL
mysqldumpslow -s t -t 10 -g “left join” /var/lib/mysql/mysql-slow.log
select * from information_schema.processlist
demo
找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀 (此处 5分钟 可根据自己的需要调整SQL标红处)select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc;
除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS 权限。
show full processlist
ID 为此线程ID,Time为线程运行时间,Info为此线程SQL
转载地址:http://kiizz.baihongyu.com/