博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql日志分析工具之mysqlsla
阅读量:6306 次
发布时间:2019-06-22

本文共 2859 字,大约阅读时间需要 9 分钟。

背景介绍

很多情况下,都需要对MySQL日志进行各种分析,来了解系统运行的方方面面。MySQL官方自带了一些工具对日志进行分析,比如mysqlbinlog可以用来分析二进制日志,mysqlslow可以用来分析慢查询日志,但这些工具相对功能较为单一,而且对查询日志没有提供分析工具。因此,很多第三方工具应用而生,而mysqlsla(MySQL Statement Log Analyzer)是其中使用较为广泛的一个。

目前常见mysql慢查询分析工具大概归纳为:

工具 / 命令 一般统计信息 高级统计信息 脚本 优势
mysqldumpslow 支持 不支持 perl mysql官方自带
mysqlsla 支持 支持 perl 功能强大,数据报表齐全,定制化能力强
mysql-explain-slow-log 支持 不支持 perl
mysql-log-filter 支持 部分支持 python / php 不失功能的前提下,保持输出简洁
myprofi 支持 不支持 php 非常精简

 

 

 

 

 

 

还有pt-query-digest(需要安装Percona Toolkit)等其他工具,这里只记录一下mysqlsla常见使用方法。

 

测试环境

centos7 / mysql 5.6(开启慢查询功能)

 

安装操作

下载:

1. 安装依赖

[root@server-10 ~]# yum install  perl  perl-DBI  perl-DBD-MySQL perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

2. 切换到mysqlsla目录进行编译安装

[root@server-10 mysqlsla]# perl Makefile.PL Checking if your kit is complete...Looks goodWriting Makefile for mysqlsla[root@server-10 mysqlsla]# makecp lib/mysqlsla.pm blib/lib/mysqlsla.pmcp bin/mysqlsla blib/script/mysqlsla/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/mysqlslaManifying blib/man3/mysqlsla.3pm[root@server-10 mysqlsla]# make installInstalling /usr/local/share/perl5/mysqlsla.pmInstalling /usr/local/share/man/man3/mysqlsla.3pmInstalling /usr/local/bin/mysqlsla             //生成了mysqlsla命令Appending installation info to /usr/lib64/perl5/perllocal.pod

3. 使用mysqlsla命令

[root@server-10 ~]# mysqlsla -lt slow --sort t_sum --top 20 mysql-slow.log > /tmp/select.log // 查询记录最多的20个sql语句,并写到select.log中去。
[root@server-10 ~]# mysqlsla -lt slow  -sf "+select" -top 100  mysql-slow.log >/tmp/sql_select.log // 统计慢查询文件为mysql-slow.log中的所有select的慢查询sql,并显示执行时间最长的100条sql,并写到sql_select.log中去
root@server-10 ~]# mysqlsla -lt slow  -sf "+select,update" -top 100 -sort c_sum  -db mydata mysql-slow.log >/tmp/sql_num.log // 统计慢查询文件为mysql-slow.log的数据库为mydata的所有select和update的慢查询sql,并查询次数最多的100条sql,并写到sql_num.sql中去

 参数说明

"--log-type (-lt) TYPE LOGS"  // 指定日志类型

Parse MySQL LOGS of TYPE. Default none. TYPE must be either slow, general, binary, msl or udl. LOGS is a space-separated list of MySQL log files.


 "--statement-filter (-sf) CONDTIONS"  // 语句过滤,“+”和“-”分别表示“仅显示”和“仅去掉”

Set SQL statement filter using CONDITIONS. Default none. CONDITIONS is a comma-separated list of SQL statement types in the form:

[+-][TYPE],[TYPE],etc.


 "--top N"  // 最top的N条,默认显示top 10

After sorting display only the top N queries. Default 10.


 "--sort META"  // 按指定排序,默认慢查询和微秒查询会按照总执行时间“t_sum”来排序,其他日志默认按照“c_sum”

Sort queries according to META. Default t_sum for slow and msl logs, c_sum for all others. META is any meta-property name.


 "--databases (-db) (-D) DATABASES"   // 指定数据库

Try EXPLAINing queries which have no known database using DATABASES. Default none. DATABASES is a comma-separated list of database names (without

spaces). Only used when option explain is used too.


 其他参数可通过man mysqlsla查询。

 

 

结束.

其他参考:

 

转载于:https://www.cnblogs.com/ding2016/p/9755468.html

你可能感兴趣的文章
android编译系统makefile(Android.mk)写法
查看>>
MD5源代码C++
查看>>
Eclipse 添加 Ibator
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
Python编程语言
查看>>
十四、转到 linux
查看>>
Got error 241 'Invalid schema
查看>>
ReferenceError: event is not defined
查看>>
男人要内在美,更要外在美
查看>>
为什么要跟别人比?
查看>>
app启动白屏
查看>>
Oracle 提高查询性能(基础)
查看>>
学习知识应该像织网一样去学习——“网状学习法”
查看>>
Hadoop集群完全分布式安装
查看>>
QString,char,string之间赋值
查看>>
我的友情链接
查看>>
Nginx+mysql+php-fpm负载均衡配置实例
查看>>
shell脚本操作mysql数据库 (部份参考)
查看>>
MySql之基于ssl安全连接的主从复制
查看>>
informix的逻辑日志和物理日志分析
查看>>