mysql5.6.29添加慢查询sql日志

查看mysql版本命令:

SELECT VERSION();

查看是否开启慢查询功能:

show global variables like '%slow%';

查询结果:

174341_e7H8_123050.png

如果看到slow_query_log为ON,则说明,开启了慢查询功能,

查看设置慢查询的时写日志的时间开关

show global variables like '%long%';

查询结果:

174722_4VvG_123050.png

此处long_query_time我设置的是0.1秒,如果超过0.1秒就写日志文件


具体配置操作:

vi /ect/my.cnf

配置内容如下:

# long sql congfig by kg
long_query_time=0.1
#log_queries_not_using_indexes=1
slow_query_log=on
slow_query_log_file=/var/log/mysql-slow.log

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

重新启动 mysql:

service mysqld restart

验证慢查询:

 SELECT SLEEP(1);

查看日志结果:

[root@yjw00 log]# cat mysql-slow.log 
/usr/sbin/mysqld, Version: 5.6.29-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 160504 17:50:36
# User@Host: root[root] @  [192.168.0.159]  Id:     3
# Query_time: 1.000563  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
use test;
SET timestamp=1462355436;
SELECT SLEEP(1);

select sleep(1)在日志中了,说明查询超过0.1秒了。

最后

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

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

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


转载于:https://my.oschina.net/ydsakyclguozi/blog/669796

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值