【MySQL】慢查询配置与分析

前言

配置过几次mysql的慢查询分析,但都没记住,每次都要上网找配置参数,所以这次干脆记录下来。慢查询就是通过配置,记录查询效率低的sql语句,可以统计使用次数、未用到索引的语句等功能。实现项目中数据层的优化,这里使用mysql官方自带的分析工具mysqldumpslow,常见的还有如下:

慢查询分析工具

  1. mysqldumpslow
  2. mysqlsla
  3. myprofi
  4. mysql-explain-slow-log
  5. mysqllogfilter

配置

  • 查看mysql是否开启过慢查询
show variables like '%slow%';

如果slow_query_log 为ON或者为1,则表示开启,反之未开启。在mysql的配置文件my.cnf(windows下应该是my.ini)中配置慢查询项。顺便说一下查看mysql配置文件路径,命令如下:

zemochen:choicecollect SuperZemo$ mysqld --verbose --help |grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 

如上,就是查询mysql配置文件路基,及输出结果,优先级按位置顺序依次往下。
- 修改配置文件my.cnf,在[mysqld]中增加如下:

slow_query_log=ON     #开启慢查询
long_query_time = 1   #慢查询语句时间(时间超过1秒记录)
slow_query_log_file=/data/mysql/slow_query.log#慢查询日志文件路径
log_queries_not_using_indexes = true    #是否调用索引

重启mysql即可,再进入mysql中查看配置是否生效,可以使用:

select sleep(1);

然后去查看/data/mysql/slow_query.log 是否有记录刚才的测试语句,确认配置成功。

mysqldumpslow工具分析慢查询日志

mysqldumpslow [options] [log_file ...]
#mysqldumpslow -s r -t 10 /data/mysql/slow_query.log 

查询参数说明:

格式(参数)描述
-a不抽象为N和S(因为是多条语句合并,所以会把参数和时间抽象成N和S)
-n N指定抽象数字至少为N位
-g pattern只查询指定匹配的语句
-h查询指定host的语句
-i服务器示例名
-l不在总时间中减去锁表时间
-r反向排序
-s排序:
t,at: 查询时间或平均时间
l,al:锁定时间或平均锁定时间
r,ar:返回记录时间或平均返回时间
c: 使用次数
-t N查询前N条记录
–debug,-ddebug模式启动
–help,-h帮助
–verbose,-v更多信息

查询结果参数说明:

参数描述
Count出现次数
Time执行最长时间;
Lock等待锁的时间
Rows发送给客户端的行总数

有些数据后面跟了一个() 则表示累计总数

参考文献

http://dev.mysql.com/doc/en/option-files.html
http://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html
http://dev.mysql.com/doc/refman/5.7/en/mysqldumpslow.html#option_mysqldumpslow_abstract

关于我

  • @Author:Zemo
  • @Email:zemochen#gmail.com
  • J2EE 两年多研发经验,日常公司打杂,处于迷茫期
  • 欢迎转载,让更多的人学到东西
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值