百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql 慢查询日志开启与使用详解
分享文章到:

mysql 慢查询日志开启与使用详解

发布时间:01/15 来源: 浏览: 关键词:
mysql 慢查询日志打开的方法很简单,我们只要设置set global long_query_time=0.000001;,这要就是毫秒级别以下的慢日志记录

MySQL慢日志往往是大家定位SQL性能问题。通过慢日志分析可以调整索引使用。这是使用最多的一个功能。

目前MySQL也支持毫秒级别以下的慢日志记录,这个功能其实有很多用处,这里大概给大家讲解一下。该功能开启参数:long_query_time

查看慢查询是否开启:

 代码如下

mysql> show variables like '%slow%';
+---------------------+-------------------------+
| Variable_name       | Value                    |
+---------------------+-------------------------+
| log_slow_queries    | ON                        |
| slow_launch_time    | 2                          |
| slow_query_log      | ON                         |
| slow_query_log_file | D:/log/slow.txt       |
+---------------------+-------------------------+

其中,各参数说明如下:

slow_launch_time: 慢查询超过的执行时间值

 slow_query_log: 是否打开慢查询日志功能

show_query_log_file:慢查询日志目录 


通常使用这个参数的几个环境:

需要得到一个业务的所有SQL可以在测试环境中MySQL的long_query_time设置为0.000001:

 代码如下

set global long_query_time=0.000001;
 
flush logs;

也可以直接在找到 MySQL 的配置文件 ,my.cnf (Windows 为 my.ini ),在 MySQL 下增加下面几行

 代码如下

log-slow-queries ="D:/xampp/mysql/long.txt"
long_query_time = 1

log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)
long_query_time=2 (记录超过的时间,默认为10s)
log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)
log-long-format (如果设置了,所有没有使用索引的查询也将被记录)

上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。

然后重新启动MySQL服务

2、 MySQL 配置文件的位置

Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:Windows 下。

Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下。


这样基本上所有对MySQL请求的sql都会记录到慢日志中。通过日志分析可以全面了解一下SQL样式及整体运行调用分布。(重要的库可以考虑开启该参数记录相应的log用于审计使用)

同样对于生产环境,可以通过开启该参数,定期收集一下线上的SQL运行情况,做一些对比,方便了解目前线上SQL运行的情况。能更供更多的指导。 有了慢查询日志,通过慢查询日志分析工具很容易得到一份不错的分析结果。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有51人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板