文档章节

MySQL开启慢查询日志log-slow-queries

刺猬一号
 刺猬一号
发布于 2017/05/22 17:21
字数 659
阅读 15
收藏 0

一个普通WEB站点的页面常常需要查询N条SQL语句后才能得出页面结果,当网站访问速度慢而前端做了大量优化工作以后,数据库瓶颈的查找也是WEB优化的一个重要部分。

 

MySQL中提供了一个慢查询的日志记录功能,可以把查询SQL语句时间大于多少秒的语句写入慢查询日志,日常维护中可以通过慢查询日志的记录信息快速准确地判断问题所在。

开启慢查询功能

log-slow-queries 慢查询日志文件路径

long_query_time 超过多少秒的查询就写入日志

打开my.cnf配置文件,加入以下代码:

        log-slow-queries = /tmp/mysql-slow.log

        long_query_time = 2

保存退出,重启MySQL即可。

关于long_query_time设置

通常我们设置long_query_time的值为2,表示查询SQL语句超过两秒的就记录,通常2秒就够了,默认是10秒。然而,对于许多WEB程序来说,2秒的查询还是太长了。的确在许多站点中,一个SQL语句超过1秒的执行时间都算慢的了。

mysql5.1.21以后才提供更细粒度的long_query_time设定,之前的版本只能以秒做单位。

查看日志

[root@lizhong tmp]# tail -f /tmp/mysql_slow.log
Time: 120815 23:22:11
User@Host: root[root] @ localhost []
Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774
SET timestamp=1294388531;
select count(*) from blog;

第一行:执行时间

第二行:执行用户

第三行(重要):

Query_time SQL执行的时间,越长则越慢

Lock_time 在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间

Rows_sent 查询返回的行数

Rows_examined 查询检查的行数

最后

1、日志不能说明一切问题,知识表象,可能跟锁表、系统繁忙的偶发性有关,当然,如果某条SQL语句经常查询慢那基本可以判断是可以再次优化的。

2、不要开启log-queries-not-using-indexes没有索引查询记录功能,这个功能实际用处不大。就是记录SQL查询的时候,没有索引的通通记录。虽然索引对查询的速度有影响,但要看数据量大小。因为开启了这个功能以后,select * from tab这样的查询也会被记录在日志中,很快日志文件就会被垃圾信息给充满,从而影响主要的查询慢日志记录的查看。

3、MySQL自带了mysqldumpslow工具用来分析slow query日志,或者其它工具也可以,通过工具配合可以更好的分析。

© 著作权归作者所有

刺猬一号
粉丝 12
博文 373
码字总数 616361
作品 0
深圳
私信 提问
如何开启mysql的慢查询机制

1 在mysql中默认是不会开启慢查询日志功能的,我们可以使用show variables like '%slow%'来查看一下。结果略,参数说明:logslowqueries表示服务器端是否开启慢查询日志记录功能,slowquery...

goodson
2014/05/10
0
0
MySQL慢日志查询分析方法与工具

版权声明:本文为EnweiTech原创文章,未经博主允许不得转载。 https://blog.csdn.net/English0523/article/details/80239189 启用 slow log 1, 在my.cnf 里 通过 log-slow-queries[=file_nam...

天府云创
2018/05/08
0
0
mysql 5.6.30 开启慢查询日志

MySQL版本: [root@localhost app]# mysql -V mysql Ver 14.14 Distrib 5.6.30, for Linux (x86_64) using EditLine wrapper 查询是否开启慢查询 show variables like '%slow%'; 开启方法有两......

quyong911
2017/05/23
0
0
MySQL慢日志查询全解析:从参数、配置到分析工具

一、慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过longquerytime值的SQL,则会被记录到慢查询日志中。longq...

潇湘隐者
2016/09/28
0
0
mysql 开启日志记录并且解决日志时间错误问题

注:(1)mysql版本5.7 ubuntu16.04 (2)为了简明的查询日志,我在系统默认mysql日志文件夹中对日志进行了分类,并把赋予正确的权限 一、开启二进制日志 查看二进制日志是否开启 编辑mysql...

Marhal
2018/09/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

带出7个“师弟”,支付宝BASIC College的辅导员是个伪90后

文/电商在线 朱婷 “我的花名是改之,不是‘有则改之无则加勉’的改之,而是‘杨过,字改之’的那个改之。”一见面,他对自己花名的介绍,就让人耳目一新。至于为什么要用杨过的字给自己起名...

阿里云云栖社区
13分钟前
1
0
一次性搞清楚equals和hashCode

前言 在程序设计中,有很多的“公约”,遵守约定去实现你的代码,会让你避开很多坑,这些公约是前人总结出来的设计规范。 Object类是Java中的万类之祖,其中,equals和hashCode是2个非常重要...

编程SHA
13分钟前
0
0
kibana 性能监控 apm

启动本地节点:nohup ./apm-server -c apm-server.yml -e weblogic 12 性能监控 修改 wls12213/user_projects/domains/base_domain/startWebLogic.sh 文件,添加如下内容 export JAVA_OPTION......

internetafei
16分钟前
0
0
给指定的某个commit号加tag并推送

给指定的某个commit号加tag 打tag不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log获取,取校验和的前几位数字即可)。 git tag -a v1.2 9fceb02 -m...

dragon_tech
16分钟前
0
0
等保2.0来了 | 网站被黑,还要被处罚,为什么背锅的总是我?

“净网2019”专项行动开展以来,四川公安网安部门查处了一批不履行网络安全管理义务的网络运营者,其中包括不履行网络安全保护义务的高校、政府机关、企业和单位均受到了处罚! ▶ 宜宾学院因...

亚洲诚信
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部