一、慢日志是什么?
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
二、开启步骤
1.查询慢日志是否开启
SQl如下:
show variables like 'slow_query%';
运行结果:
OFF表示未开启 ON 表示开启 /data/mysql/a33… 表示log日志位置
查看时间超过多少秒将会记录默认值是10s
show variables like 'long_query_time';
2.开启慢日志
方法一:全局变量设置(数据库重启全部失效,得重新配置)
开启慢日志
set global slow_query_log='ON';
//修改日志文件位置
set global slow_query_log_file='/data/mysql/slow.log'; //linux
set global slow_query_log_file='D:\\mysq\data\slow.log'; //windows
//设置慢查询时间为0.02s
set global long_query_time=0.02
方法二:配置文件设置(服务器重启不影响)
1、修改配置文件my.cnf,在[mysqld]下的下方加入
slow_query_log = ON
slow_query_log_file = /data/mysql/slow.log //linux
long_query_time = 1
2、重启MySQL服务
service mysqld restart
3.查询验证
1、执行测试sql语句查看是否修改成功
2、验证是否成功
执行测试sql语句
select sleep(1);
查看show.log日志
总结
如果日志存在,MySQL开启慢查询设置成功!
慢sql查询出来主要用将这些接口进行优化提高性能,但是在上线后建议关闭,有对数据库性能的影响。