VVL1295

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  启用慢查询日志,需要把参数“slow_query_log”设置为 ON,需要设置 long_query_time,默认时间为 10 秒,时间精确到微秒;除了记录慢查询,该日志文件还可以记录不用索引的查询(包括 where 子句里面字段根本没有加上索引的,以及字段有加上索引但是索引失效,导致全表扫描的情况),这样可能会导致文件大小增长得很快;

  根据以上所述,有些开发者就会出现“记录的日志包含不止慢查询语句,还有用不上索引的查询语句,以为出错了”的情况;

# Time: 161020 22:12:13
# User@Host: root[root] @ localhost [127.0.0.1]  Id: 18597
# Query_time: 0.001002  Lock_time: 0.000000 Rows_sent: 3  Rows_examined: 16
SET timestamp=1476972733;
SELECT * FROM hard as h GROUP BY h.qu ORDER BY h.je;
# User@Host: root[root] @ localhost [127.0.0.1]  Id: 18597
# Query_time: 0.001006  Lock_time: 0.000000 Rows_sent: 15  Rows_examined: 295
SET timestamp=1476972733;
SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID;
# User@Host: root[root] @ localhost [127.0.0.1]  Id: 18597
# Query_time: 0.000997  Lock_time: 0.000997 Rows_sent: 20  Rows_examined: 311
SET timestamp=1476972733;
SELECT STATE AS `状态`, ROUND(SUM(DURATION),7) AS `期间`, CONCAT(ROUND(SUM(DURATION)/0.000519*100,3), '%') AS `百分比` FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID=122 GROUP BY STATE ORDER BY SEQ;

 

  慢查询日志的信息:

  其中:#User 为发起 SQL 的主机信息;# Query_time 为 SQL执行信息;Lock_time 为锁定时间;Rows_sent 为返回的记录数量;Rows_examined 为扫描的记录数;timestamp 为执行时刻;还包含 SQL 的内容;

  

  log 的信息可能每天增长得很快,我们通常只分析,最急迫需要分析的一部分,这时候就需要工具帮忙,这里介绍的是 MySQL 自带的分析辅助工具 mysqldumpslow;

    使用这工具的方法就是运行安装 MySQL 时写入的 perl 脚本 mysqldumpslow.pl,位于安装路径的 bin 目录下,要运行 Perl 脚本需要安装应用,这里使用的是 ActivePerl,安装的时候就在系统变量 Path 增加两个属性值,安装很方便;

      安装 ActivePerl 的步骤(下载应用的链接:http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.24.0.2400/ActivePerl-5.24.0.2400-MSWin32-x64-300558.exe):

        1,在官网下载应用;

        2,安装应用,安装应用时选择往系统变量 Path 增加两个属性值;

        3,如果安装成功,在 cmd 中输入命令:perl -v 并运行,即可看到相关信息;

      打开 cmd,进入到日志所在的目录,然后键入命令 perl C:\mysqldumpslow.pl -s at -t n YOS-01508031031-slow.log 即可找到按平均执行时间排序(-s at)的排名前n(-t n)的查询语句(比较常用的命令);

      通常的使用方法就如上所述;

      该工具的详细使用说明看:http://dev.mysql.com/doc/refman/5.7/en/mysqldumpslow.html;

  

 

posted on 2016-12-02 22:27  bobo2018  阅读(135)  评论(0)    收藏  举报