美文网首页
MySQL 慢查询分析实践

MySQL 慢查询分析实践

作者: 我问你瓜保熟吗 | 来源:发表于2020-06-23 14:40 被阅读0次

mysql默认未开启慢查询记录功能;默认慢查询时间为10秒。

一、mysql开启慢查询日志记录

// 查看慢查询是否开启
show variables like 'slow_query%';
show variables like 'long_query_time';

// 设置慢查询
set GLOBAL slow_query_log='ON';
set  long_query_time=2;
set GLOBAL long_query_time=2;

// 测试慢查询是否生效
select sleep(2)

// 配置文件修改慢查询
[mysqld]
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /usr/local/mysql/data/slow.log

// 重启mysql
systemctl restart mysql

二、利用mysqldumpslow命令,对慢查询日志进行分析统计

  1. 参数解释
    -s, 是表示按照何种方式排序
    c: 访问计数
    l: 锁定时间
    r: 返回记录
    t: 查询时间
    al:平均锁定时间
    ar:平均返回记录数
    at:平均查询时间
    -t, 是top n的意思,即为返回前面多少条的数据;
    -g, 后边可以写一个正则匹配模式,大小写不敏感的;

  2. 基本用法

  • 得到返回记录集最多的10个SQL。
    mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log
  • 得到访问次数最多的10个SQL
    mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log
  • 得到按照时间排序的前10条里面含有左连接的查询语句。
    mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log
  • 在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
    mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

相关文章

网友评论

      本文标题:MySQL 慢查询分析实践

      本文链接:https://www.haomeiwen.com/subject/nskhfktx.html