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

爱互踩 爱互踩流量交换~

mysqlsla是一个慢日志分析工具了,我们可以把慢日志对过mysqlsla进行分析从而得出性能最差的sql语句了,下面我们一起来看看吧,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, msl, udl。

sf:[+-][type],[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如”+SELECT,INSERT”,不出现的默认是-,即不包括。

db:要处理哪个库的日志。

top:表示取按规则排序的前多少条。

sort:按某种规则排序,t_sum按总时间排序, c_sum按总次数排序。

二、分析结果

总查询次数(queries total),去重后的sql数量(unique),输出报表的内容排序(sorted by),最重大的慢sql统计信息,包括 平均执行时间,等待锁时间,结果行的总数,扫描的行总数.

Count,sql的执行次数及占总的slow log数量的百分比.

time,执行时间,包括总时间,平均时间,最小,最大时间,时间占到总慢sql时间的百分比.

95% of Time,去除最快和最慢的sql,覆盖率占95%的sql的执行时间.

Lock Time,等待锁的时间.

95% of Lock,95%的慢sql等待锁时间.

Rows sent,结果行统计数量,包括平均,最小,最大数量.

Rows examined,扫描的行数量.

Database,属于哪个数据库

users,哪个用户,ip,占到所有用户执行的sql百分比

Query abstract,抽象后的sql语句

Query sample,sql语句

三、安装

方法一:从http://hackmysql.com/mysqlsla下载mysqlsla,当前最新版为:2.03

tar zxvf mysqlsla-2.03.tar.gz

cp mysqlsla-2.03/bin/mysqlsla /usr/local/bin

如果提示“Can’t locate DBI.pm”,执行以下命令:

yum install perl-DBI perl-DBD-MySQL -y

这时就可以使用mysqlsla了,用法如下:mysqlsla -lt slow slow.log

方法二:

  1. wgethttp://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
  2. #tarxzvfmysqlsla-2.03.tar.gz
  3. mysqlsla-2.03/
  4. mysqlsla-2.03/Changes
  5. mysqlsla-2.03/INSTALL
  6. mysqlsla-2.03/README
  7. mysqlsla-2.03/Makefile.PL
  8. mysqlsla-2.03/bin/
  9. mysqlsla-2.03/bin/mysqlsla
  10. mysqlsla-2.03/META.yml
  11. mysqlsla-2.03/lib/
  12. mysqlsla-2.03/lib/mysqlsla.pm
  13. mysqlsla-2.03/MANIFEST
  14. #cdmysqlsla-2.03
  15. #ll
  16. 总计68
  17. drwxr-xr-x21000100040962008-11-11bin
  18. -rw-r–r–11000100056302008-11-11Changes
  19. -rw-r–r–1100010003942008-07-13INSTALL
  20. drwxr-xr-x21000100040962008-11-11lib
  21. -rw-r–r–1100010003892008-07-13Makefile.PL
  22. -rw-r–r–1100010001522008-07-13MANIFEST
  23. -rw-r–r–1100010003032008-11-11META.yml
  24. -rw-r–r–11000100019692008-11-11README
  25. #lessINSTALL
  26. Installingmysqlsla
  27. ===================
  28. perlMakefile.PL
  29. make
  30. makeinstall
  31. Dependingonyoursystem,themysqlslascriptwillbecopiedtosomecommonbin
  32. directory(/usr/local/bin/forexample).Thenyoushouldbeabletorunitfrom
  33. thecommandlinelike:mysqlsla-ltslowLOG
  34. Forquickhelp,manmysqlsla
  35. Foralldocumentationandguides,visithttp://hackmysql.com/mysqlsla
  36. #lessMakefile.PL
  37. use5.008004;
  38. useExtUtils::MakeMaker;
  39. WriteMakefile(
  40. NAME=>‘mysqlsla’,
  41. VERSION_FROM=>‘lib/mysqlsla.pm’,
  42. PREREQ_PM=>{},
  43. ($]>=5.005?
  44. (ABSTRACT_FROM=>‘lib/mysqlsla.pm’,#retrieveabstractfrommodule
  45. AUTHOR=>‘DanielNichter(http://hackmysql.com/contact)’):()),
  46. EXE_FILES=>['bin/mysqlsla'],
  47. );
  48. #perlMakefile.PL
  49. Checkingifyourkitiscomplete…
  50. Looksgood
  51. WritingMakefileformysqlsla
  52. #ll
  53. 总计96
  54. drwxr-xr-x21000100040962008-11-11bin
  55. -rw-r–r–11000100056302008-11-11Changes
  56. -rw-r–r–1100010003942008-07-13INSTALL
  57. drwxr-xr-x21000100040962008-11-11lib
  58. -rw-r–r–1rootroot2272209-0818:52Makefile
  59. -rw-r–r–1100010003892008-07-13Makefile.PL
  60. -rw-r–r–1100010001522008-07-13MANIFEST
  61. -rw-r–r–1100010003032008-11-11META.yml
  62. -rw-r–r–11000100019692008-11-11README
  63. --phpfensi.com
  64. #make
  65. cplib/mysqlsla.pmblib/lib/mysqlsla.pm
  66. cpbin/mysqlslablib/script/mysqlsla
  67. /usr/bin/perl“-MExtUtils::MY”-e“MY->fixin(shift)”blib/script/mysqlsla
  68. Manifyingblib/man3/mysqlsla.3pm
  69. #makeinstall
  70. Installing/usr/lib/perl5/site_perl/5.8.8/mysqlsla.pm
  71. Installing/usr/share/man/man3/mysqlsla.3pm
  72. Installing/usr/bin/mysqlsla
  73. Writing/usr/lib/perl5/site_perl/5.8.8/i386-Linux-thread-multi/auto/mysqlsla/.packlist
  74. Appendinginstallationinfoto/usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod

默认将命令mysqlsla安装到/usr/bin目录,执行mysqlsla –help时提示没有安装DBI模块,mysqlsla是用perl写的,第一次通过CPAN安装perl模块时,需要进行相关的配置,大部分配置采用默认值,一路回车即可.

#perl -MCPAN -e Shell

然后在下面的各个询问中可以改已经配置好的选项,然后执行下面的命令保存.

CPAN>reload index

CPAN>reload cpan

安装DBI模块:CPAN>install DBI

如果是第一次以后进入CPAN系统,想修改以前的配置,可以在CPAN命令行(即CPAN>)键入以下指令:

CPAN>o conf init

同时要执行下面的命令保存:

CPAN>reload index

CPAN>reload cpan

man mysqlsla可以看到mysqlsla的相关选项:

  1. #manmysqlsla
  2. XXX
  3. XXXWARNING:oldcharacterencodingand/orcharacterset
  4. XXX
  5. mysqlsla(3)UserContributedPerlDocumentationmysqlsla(3)
  6. NAME
  7. mysqlsla–Parse,filter,analyzeandsortMySQLslow,generalandbinarylogs
  8. SYNOPSIS
  9. #Basicoperation:parseaMySQLsloworgenerallog
  10. mysqlsla–log-typeslowLOG
  11. mysqlsla–log-typegeneralLOG
  12. #Parseoutputfrommysqlbinlog
  13. #mysqlslacannotdirectlyparsebinarylogs
  14. mysqlbinlogLOG│mysqlsla–log-typebinary-
  15. #Parseamicroslowpatchedslowlog
  16. mysqlsla–log-typemslLOG
  17. #Replayareplayfile
  18. mysqlsla–replayFILE
  19. #Parseauser-definedlogspecifyitsformat
  20. mysqlsla–log-typeudl–udl-formatFILE
  21. #Letmysqlslaautomaticallydeterminethelogtype
  22. mysqlslaLOG
  23. DESCRIPTION
  24. mysqlslaparses,filters,analyzesandsortsMySQLslow,general,binaryandmicroslowpatchedslowlogs.
  25. Italsosupportsuser-definedlogs.
  26. ThisPOD/manpageisonlyaverybriefoutlineofusageandcommandlineoptions.Forthefulllibraryof
  27. mysqlsladocumentationvisithttp://hackmysql.com/mysqlsla.
  28. #mysqlsla/tmp/mysqlslow.log|less
  29. Auto-detectedlogsasslowlogs
  30. Reportforslowlogs:/tmp/mysqlslow.log
  31. 6queriestotal,6unique
  32. Sortedby‘t_sum’
  33. GrandTotals:Time0s,Lock0s,Rowssent13,RowsExamined13
  34. ______________________________________________________________________001___
  35. Count:1(16.67%)
  36. Time:2.321mstotal,2.321msavg,2.321msto2.321msmax(47.20%)
  37. LockTime(s):629?stotal,629?savg,629?sto629?smax(77.75%)
  38. Rowssent:8avg,8to8max(61.54%)
  39. Rowsexamined:8avg,8to8max(61.54%)
  40. Database:
  41. Users:
  42. root@192.168.1.100:100.00%(1)ofquery,100.00%(6)ofallusers
  43. Queryabstract:
  44. SETtimestamp=N;SHOWvariablesLIKE‘S’;
  45. Querysample:
  46. SETtimestamp=1252395365;
  47. showvariableslike‘%character%’;
  48. ……

格式说明如下:

总查询次数(queries total),去重后的sql数量(unique),输出报表的内容排序(sorted by),最重大的慢sql统计信息,包括平均执行时间,等待锁时间,结果行的总数,扫描的行总数.

Count,sql的执行次数及占总的slow log数量的百分比.

Time,执行时间,包括总时间,平均时间,最小,最大时间,时间占到总慢sql时间的百分比.

95% of Time,去除最快和最慢的sql,覆盖率占95%的sql的执行时间.

Lock Time,等待锁的时间.

95% of Lock,95%的慢sql等待锁时间.

Rows sent,结果行统计数量, 包括平均, 最小, 最大数量.

Rows examined,扫描的行数量.

Database,属于哪个数据库

Users,哪个用户,IP,占到所有用户执行的sql百分比

Query abstract,抽象后的sql语句

Query sample,sql语句

除了以上的输出,官方还提供了很多定制化参数,是一款不可多得的好工具.

相关广告
  • MySQL数据库慢日志分析工具mysqlsla使用教程 MySQL数据库慢日志分析工具mysqlsla使用教程 MySQL数据库慢日志分析工具mysqlsla使用教程
相关阅读

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

2019/10/10 17:32:38 | 谷歌SEO算法 | 黑猫SEO