MySQL的日志分析工具

MySQL的性能从查看日志开始。硬件配置低常常导致这样的问题,但事实上大多数情况并不在这里。某些“慢"SQL阻塞了其他语句的执行,优化查询是第一步需要做的。

“工欲善其事必先利其器”,MySQL自身的一款mysqldumpslow 查询日志分析器,该工具不但陈旧,验证规范不准确。今天要说的是Percona 的工具pt-query-digest,它能够分析慢查询日志内容,生成查询报告,过滤,重放或传送一些查询语句至MySQL,PostgreSQL,memcached或者其他。

基本语法:pt-query-digest [OPTION...] [FILE]

pt-query-digest[OPTION...][FILE]

缺点: 对系统资源开销较大(可以将慢查询日志拷贝至其他地方分析)

举例1(在测试库中进行)、

     pt-query-digest /usr/local/mysql3307/data/slow_my3307.log
# 120.6s user time, 1.4s system time, 59.63M rss, 103.21M vsz
# Current date: Fri Aug  3 12:21:26 2012
# Hostname: XXXX
# Files: /usr/local/mysql3307/data/slow_my3307.log
# Overall: 515.52k total, 240 unique, 0.12 QPS, 0.00x concurrency ________
# Time range: 2012-06-14 06:41:25 to 2012-08-03 12:21:26
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time          4742s    64us     16s     9ms    40ms    35ms   287us
# Lock time            20s    13us    98ms    38us    49us   370us    23us
# Rows sent          5.22M       0   1.10k   10.62   51.63   54.93    0.99
# Rows examine       8.29G       0 101.66k  16.86k  97.04k  33.18k  964.41
# Query size        32.28M      24     930   65.66  107.34   35.79   34.95

部分解释如下:

第一行表示分析该日志所使用的时间。该文件中一共拥有515.52k慢查询(测试的情况稍稍多了点。。),其中有240个完全不同类型的查询,在该时间段内每秒处理的查询数量:0.12(关于区别完全不同的查询稍后讨论)

接下来是:

比较严重SQL的分析部分:

# Profile
# Rank Query ID           Response time   Calls  R/Call Apdx V/M   Item
# ==== ================== =============== ====== ====== ==== ===== =======
#    1 0xF32359E9A4679928 2680.8630 56.5% 116551 0.0230 1.00  0.05 SELECT user_bloods
#    2 0xB05F93CEB2DED5F5 1908.3559 40.2%  62714 0.0304 1.00  0.00 SELECT user_bloods
#    4 0x85E98D19B3A42237   28.8959  0.6%     12 2.4080 0.83 11.49 SELECT appfuse.titems
# MISC 0xMISC              123.5087  2.6% 336240 0.0004   NS   0.0 <237 ITEMS>

其中挑出最为严重的 4个SQL语句,(可以通过参数 --limit 进行设置)它所有语句响应时间总和,调用比例,查询类型等

接下来是单个语句的分析:

String:
# Databases    YYY
# Hosts
# Users        XXX
# Query_time distribution
#   1us
#  10us
# 100us  ################################################################
#   1ms
#  10ms
# 100ms
#    1s  ########################
#  10s+  ########

可以看到在 在数据库YYY中用户XX 利用该语句查询的响应时间分布图,10S+ 还是很多的。

最后是分析情况:

# Tables
#    SHOW TABLE STATUS FROM `YYY` LIKE 'titems'\G
#    SHOW CREATE TABLE `ZZZ`.`titems`\G
# EXPLAIN /*!50100 PARTITIONS*/
select * from `ZZZ`.`titems`  limit 0,1000\G

# 号部分是分析步骤,最后语句可以再前面 加上 explain 进行复制,进一步分析。

本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql
, 日志
, 查询
, time
, 语句
, 分析
慢查询分析工具
mysql慢日志分析工具、mysql日志分析工具、mysql 慢查询日志分析、mysql日志查看工具、mysql 慢日志分析,以便于您获取更多的相关知识。

时间: 2024-08-01 20:04:08

MySQL的日志分析工具的相关文章

MySQL数据库慢日志分析工具mysqlsla使用教程

mysqlsla是hackmysql.com推出的一款mysql的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. 一.使用 mysqlsla -lt slow mysql-slow.log 或者 mysqlsla -lt slow mysql-slow.log -sf "+SELECT" -db dbName -top 10 -sort t_sum 参数意义 lt:表示日志类型,有slow, general, binary,

PHP开源Apache日志分析工具收集与比较

我们知道已经有很多像Awtstat这样的使用perl.c或者c++开发的强大的日志分析工具,但是同样也有很多使用PHP开发并且开源的日志分析软件,今天我就收集了一些与大家分享. 1.LogAnalyzer LogAnalyzer是 Adiscon的监控软件产品线中的一部分.可以再Windows以及Unix环境下运行.LogAnalyzer本是是免费的,GPL许可的产品. LogAnalyzer的原名为phpLogCon,他在2010年的3月29日发布了3.0的稳定版,并且正式改名为LogAnal

五款常用mysql slow log分析工具的比较分析_php技巧

启用 slow log 有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-slow-queries[=file_name]选项 比较的五款常用工具 mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 

mysql slow log分析工具的比较

原文地址: http://developer.51cto.com/art/201309/410323_all.htm mysql 中的 slow log 是用来记录执行时间较长(超过 long_query_time 秒)的 sql 的一种日志工具.       启用 slow log       在 my.cnf 中设置 [mysqld]  slow_query_log=on  slow_query_log_file=mysql-slow  重启 MySQL 服务. 五款常用工具       m

五款常用mysql slow log分析工具的比较

mysql管理工具 mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具. 启用 slow log 有两种启用方式: 1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定–log-slow-queries[=file_name]选项 比较的五款常用工具 mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-lo

iis日志分析工具下载 [IIS日志分析工具]

下载|iis|日志分析 IIS日志分析工具 可以考虑使用开源的awstats来分析 下面是我写的安装手记,希望对你能有参考 AWStats在IIS6.0下的安装手记 什么是AWStats? AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具.日志统计系统在站点的用户行为分析中扮演了重要的角色,尤其是对于来自搜索引擎的关键词访问统计:是很有效的用户行为分析数据来源.随着互联网多年的发展,WEB日志统计工具已经越来越成熟,功能也越来越丰富.其中有很多是开放源代码

日志分析工具Awstats的多站点日志分析

前面两篇都在讲述如何去部署nginx下的awstats日志分析工具,现在终于轮到apache.作为老牌的网页服务器,awstats对apache的支持非常完美,所以整个配置过程也是十分简单.因此,在这里我就拓展了一下部署,实现了对多站点的日志分析功能. 注意:自本篇博文发表之日,apache-2.4.x还是无法支持部署awstats日志分析结果访问动态化,不过可以用前篇日志分析工具Awstats实战之Nginx篇-分析结果静态化中讲到的方法来实施部署awstats.因此,本篇博文将用apache

日志分析工具Awstats的分析结果动态化

上一篇博文"分析工具Awstats实战之Nginx篇-分析结果静态化"介绍了如何将awstats的日志分析信息用静态页面来进行显示,不过显示效果肯定没有动态的好啦.本篇博文将带大家一起来部署动态的分析结果查阅. 环境: CentOS 6.4 ip:192.168.1.113 域名:www.sunsky.com(server和client都通过hosts文件解析) nginx-1.2.9 编译安装,路径/usr/local/nginx,服务开启状态 日志记录格式为nginx默认的,切勿更

日志分析工具Awstats的分析结果静态化

前言: Awstats 是在 SourceForge 上发展很快的一个基于 Perl 的 WEB 日志分析工具,一个充分的日志分析让 Awstats 显示您下列资料: 访问次数.独特访客人数, 访问时间和上次访问, 使用者认证.最近认证的访问, 每周的高峰时间(页数,点击率,每小时和一周的千字节), 域名/国家的主机访客(页数,点击率,字节,269域名/国家检测, geoip 检测), 主机名单,最近访问和未解析的 IP 地址名单 大多数看过的进出页面, 档案类型, 网站压缩统计表(mod_gz