### 慢日志的使用流程:
首先需要明白的三个概念:
long\_query\_time(多长时间视为慢查询)
slow\_query\_log(是否开启了慢查询日志,off表示未开启)
slow\_query\_log\_file(慢查询日志存放的位置)
1. 查看当前是否开启了慢日志
命令:``` show variables like '%slow_query%' ```
<span style='color:red'>**未开启慢日志【截图】**
![](https://img.kancloud.cn/d5/e8/d5e8ca3a915250bf71fb8d53b8c477a7_570x206.png)
<span style='color:red'>**开启慢日志【截图】**
![](https://img.kancloud.cn/b2/38/b23895db0fe9fed1ca3a7e1f6e8e48b9_489x201.png)
2. 开启慢日志,开启慢日志有两种方式
方式1:临时开启【重启mysql服务后,会自动关闭调慢日志】
``` SET GLOBAL slow_query_log = 'ON'; ``` -- 开启慢查询日志记录
``` SET GLOBAL long_query_time = 5; ``` -- 设置超过多少秒为慢查询
``` SET GLOBAL log_queries_not_using_indexes = 'ON'; ``` -- 将未使用索引的查询也记录到慢查询日志中
``` SET GLOBAL log_output = 'FILE'; ``` -- 设置`log_output`参数为`FILE`
方式2:永久开启
找到mysql(my.cnf)配置文件,在里面添加代码【注释删除,不然会报错】
```
slow_query_log = 1
long_query_time = 1 #设置慢查询的时间阈值,单位为秒,例如设置为1表示执行时间超过1秒的查询会被记录
log_output = FILE # 设置慢查询日志的输出方式为文件存储
slow_query_log_file = /path/to/your/slow_query.log # 设置慢查询日志文件的路径和名称
```
3. 使用慢日志
1.再次查看当前慢日志的开启状态,命令:```show variables like '%slow_query%'```
2.执行查询时间大于设置的5s的sql语句
3.执行以下两个命令:
``` SHOW GLOBAL STATUS LIKE 'Slow_queries'; ``` # 显示慢查询的总次数
``` SHOW GLOBAL STATUS LIKE 'Slow_queries_log';``` # 找到慢日志的存储位置【 json格式存储有利于扩展】
``` tail -n 3 /path/to/your/slow_query.log(慢日志的存储路径) ``` # 查询最近3次的慢日志记录
4. 分析慢日志
5. 总结说明
<span style='color:red'>一:慢日志存储有三种方式:</span>
1:文件方式存储
2:表方式存储
3:Syslog 或其他日志守护进程