mysql 开启慢查询日志

 由于慢查询日志记录的信息比较多,会影响mysql的性能,所以生产环境不建议长期开启

1、查看慢查询日志是否开启(slow_query_log ON 为开启 OFF为关闭) 

 show variables like '%slow%' 

mysql 开启慢查询日志 

 2、查看慢查询状态

show global status like '%slow%';

mysql 开启慢查询日志 

3、在终端打开慢查询日志

set  @@global.slow_query_log = ON;

4、模拟慢查询日志

SELECT SLEEP(10) ;

 5、查看慢日志超时时间

 show global variables like 'long%';

mysql 开启慢查询日志 

其中这个慢查询时间并不是只表示语句自身执行超过10秒还包含由于其他资源被征用造成阻塞的查询执行时间或其他原因等都被记录到慢查询中。所以这个慢查的时长表示从查询开始到查询结束中间包含可能的任何原因所经历的所有时间。

6、查看慢查询输出方式

 SELECT @@global.log_output 

mysql 开启慢查询日志 

7、查看本地的慢查询记录文件(第一个查询中 slow_query_log_file 代表慢查询日志的文件位置)

mysql 开启慢查询日志

8、保存慢查询日志到表中

MySQL支持将慢查询日志保存到mysql.slow_log这张表中。通过@@global.log_output可以设置默认为TABLE,

FILE和TABLE只能同时使用一个。

set @@global.log_output='TABLE';

查看表

SELECT * from mysql.slow_log; 

 mysql 开启慢查询日志

9、其他的可用参数

log_queries_not_using_indexes=1    # 将所有没有使用带索引的查询语句全部写到慢查询日志