博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL开启慢查询日志
阅读量:6698 次
发布时间:2019-06-25

本文共 2830 字,大约阅读时间需要 9 分钟。

hot3.png

参考网页

0.慢查询日志参数说明

slow_query_log

慢查询开启状态。

slow_query_log_file

慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)。

long_query_time

查询超过多少秒才记录。

说明--mysql中参数查询--使用 show variables 语句

真正查询时可以通过模糊匹配参数。如’slow_query%’。

1.查询mysql中慢查询日志参数

mysql> show variables like 'slow_query%';

+---------------------+------------------------------------------+

| Variable_name       | Value                                    |

+---------------------+------------------------------------------+

| slow_query_log      | OFF                                      |

| slow_query_log_file | E:\mysql-5.7.15-winx64\data\dzn-slow.log |

+---------------------+------------------------------------------+

2 rows in set, 1 warning (0.01 sec)

 

mysql> show variables like 'long_query_time';

+-----------------+-----------+

| Variable_name   | Value     |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set, 1 warning (0.01 sec)

 

如下图:

  1. 1设置mysql慢查询参数方法1--全局变量设置(临时设置方法)

自己实践设置slow_query_log 和 slow_query_log_file--注意win7下slow_query_log_file地址的写法(标黄)

mysql> set global slow_query_log='ON';

Query OK, 0 rows affected (0.01 sec)

 

mysql> set global slow_query_log_file='E:/mysql-5.7.15-winx64/data/slow.log';

Query OK, 0 rows affected (0.03 sec)

 

mysql> show variables like 'slow_query%';

+---------------------+--------------------------------------+

| Variable_name       | Value                                |

+---------------------+--------------------------------------+

| slow_query_log      | ON                                   |

| slow_query_log_file | E:/mysql-5.7.15-winx64/data/slow.log |

+---------------------+--------------------------------------+

2 rows in set, 1 warning (0.01 sec)

如下图,可见都生效了

自己实践设置long_query_time

发现没有生效???

登出mysql,再次登入,发现还是生效了。不知道为何不能立即显示生效,估计跟mysql自身机制有关。

关闭mysql服务然后重启mysql服务查看参数是否生效--结果发现刚才的设置都失效了

2.2设置mysql慢查询参数方法2--配置文件设置

设置参考

自己实践

先把mysql服务器停了。找到配置文件

修改配置文件,如下图:

slow_query_log = ON

slow_query_log_file = E:/mysql-5.7.15-winx64/data/slow.log

long_query_time = 1

重启mysql服务器,查看参数,发现没有生效,为啥?

为何设置没有生效??????--配置文件错了

停止mysql服务器,将【my-default.ini】文件拷贝一份并改名为【my.ini】,然后再次启动mysql服务器。

此时登录并查询,可见配置文件中的配置参数都生效了,如下图:

而且这种生效是永久的生效,不是暂时的。

2.3两种设置方法的不同

2.1的设置方法是暂时的,重启mysql服务器后配置就失效了。2.2在配置文件my.ini中进行配置是永久的,不会因mysql服务器的重启而失效。

my.ini是mysql服务器的配置文件,my-default.ini不是。没有my.ini的情况下估计mysql就以自己系统中默认的配置参数为准的,而非读取的my-default.ini中的参数

  1. 测试慢查询日志

执行一条慢查询SQL语句(执行了两遍 select sleep(2);语句)

mysql> select sleep(2);

+----------+

| sleep(2) |

+----------+

|        0 |

+----------+

1 row in set (2.01 sec)

查看是否生成慢查询日志

由于慢查询的时间修改为了1s,select sleep(2);这句sql语句要执行最少2s,打开日志查看,可以看到慢查询日志中多了两条记录。

★mysql服务器慢查询配置方案

采用【2.2设置mysql慢查询参数方法2--配置文件设置】的方案进行配置

停止msql服务

修改mysql服务器的配置文件my.ini

配置文件内容,如图

slow_query_log=ON

slow_query_log_file=E:/mysql-5.7.15-winx64/data/slow.log

long_query_time=1

重启mysql服务,慢查询日志生效

引申的问题--慢查询日志现在就一个,如果过大怎么办?

参考

说明--并未做试验

思路很简单,就是按日期(按日或者按月)或者按照不同库进行切割。考虑到服务器端的存储空间还可以用脚本对日志定期处理。

慢查询日志就是用来手动或者自动化分析出来慢查询语句然后优化系统用的。

转载于:https://my.oschina.net/u/3866531/blog/1829775

你可能感兴趣的文章
Linux文件、目录权限及常用命令
查看>>
windows下apache+php+mysql 环境配置方法
查看>>
gson-2.2.api简单
查看>>
泛型复习
查看>>
mysql-5.7中的innodb_buffer_pool_prefetching(read-ahead)详解
查看>>
转载CSDN博文精选:Android系列开发博客资源汇总
查看>>
DiscoveryService.getRemoteAdvertisements是否会获得本地通告?
查看>>
小球游戏1
查看>>
asp.net中的记忆盲区
查看>>
windows 7鼠标右键另存为没有桌面选项
查看>>
【转载】 Asp.net Mvc 3当然也不会例
查看>>
识别移动设备脚本
查看>>
股票自动交易使用协议
查看>>
[Windows Phone] 为应用添加后台计划任务 – Scheduled Task Agent
查看>>
数据库中使用自增量字段与Guid字段作主键的性能对比(补充篇)-----转
查看>>
使用 servlet 连接数据库
查看>>
流媒体服务器搭建实例——可实现录音,录像功能
查看>>
.Net/C#中Cache的用法
查看>>
[Winodows Phone 7控件详解]控件拾遗
查看>>
强大的独立日期选择器(date picker)插件 - Kalendae
查看>>