在做Web项目性能测试过程中,肯定要对数据库SQL语句执行情况实施监控,以便给开发提供准确的性能优化意见。目前Mysql数据库可以说是使用最广泛的数据库了,接下来咱们谈一下怎么使用Mysql数据库提供的慢查询日志来监控SQL语句执行情况。
Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来,并且有SQL语句执行的详细信息,其中就包括执行的时间。
以下说明一下慢查询日志的使用步骤:
步骤一:在mysql命令行执行show variables like 'long%'; 确认查询出来的long_query_time的值
![e5f3aed26e67290915c44fe3aec89bc1.png](https://i-blog.csdnimg.cn/blog_migrate/ef78e92a985dc168226beff165243cde.png)
这个long_query_time是用来定义慢于多少秒的才算“慢查询”,注意单位是秒,然后咱们可以设置long_query_time的值;我通过执行sql指令set long_query_time=1来设置了long_query_time的值为1, 也就是执行时间超过1秒的都算慢查询,如下:
![b61add2049827f0a93c68b8ab3a1cd0d.png](https://i-blog.csdnimg.cn/blog_migrate/18ae73e0df08ede1ac79c1e13c96093b.png)
步骤二:在mysql命令行执行show variables like 'slow%';确认查询出来的slow_query_log的值和slow_query_log_file的值
![667d81900b5a29a8a398cd8dcb5d1624.png](https://i-blog.csdnimg.cn/blog_migrate/882043728ee840472c68e42c756e0711.png)
其中slow_query_log表示是否打开慢查询日志记录 ,如果其值为OFF就需要设置成ON,这样慢查询日志才会记录信息,否则慢查询日志不会记录信息,默认其值为OFF;执行set global slow_query_log ='ON';可以将其值设置为ON;如下图:
![10dd2c9fb2719dbc8372b72c30185602.png](https://i-blog.csdnimg.cn/blog_migrate/1d6205d05c90cb947141cbd3d437ef3a.png)
另外数据库变量slow_query_log_file 的值是慢查询日志保存的位置,是一个文件的路径,这个就是咱们的慢查询日志的位置了,方便咱们很快的找到慢查询日志。
当然咱们在/etc/my.cnf(以Linux系统为例) 配置文件里面也可以很方便的设置上面MYSQL全局变量的初始值。例如:
long_query_time=1
slow_query_log_file=/tmp/slow.log
接下来咱们就可以正常的使用慢查询日志对SQL语句进行监控了。