当前位置: 首页 > 科技观察

4大MySQL优化工具AWR助你精准定位数据库瓶颈!

时间:2023-03-13 19:02:50 科技观察

对于正在运行的mysql,性能如何,参数设置是否合理,账户设置是否存在安全隐患,你清楚吗?俗话说,工欲善其事必先利其器对自己的MYSQL数据库进行体检是保证数据库安全运行的重要手段,因为好的工具可以让你的工作效率翻倍!今天给大家分享几款mysql优化工具,你可以通过它们对你的mysql进行体检并生成awr报告,让你从整体上把握你的数据库的性能。1、mysqltuner.plmysqltuner.pl是mysql常用的数据库性能诊断工具。主要检查参数设置的合理性,包括日志文件、存储引擎、安全建议和性能分析。针对可能存在的问题提出改进建议。是mysql优化的好帮手。在之前的版本中,MySQLTuner支持MySQL/MariaDB/PerconaServer大约300个指标。项目地址:https://github.com/major/MySQLTuner-perl(1)下载[root@localhost~]#wgethttps://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl(2)使用[root@localhost~]#./mysqltuner.pl--socket/var/lib/mysql/mysql.sock>>MySQLTuner1.7.4-MajorHayden>>错误报告、功能请求和下载地址http:///mysqltuner.com/>>Runwith'--help'以获得额外的选项和输出过滤[--]SkippedversioncheckforMySQLTunerscriptPleaseenteryourMySQLadministrativelogin:rootPleaseenteryourMySQLadministrativepassword:[OK]CurrentlyrunningsupportedMySQLversion5.7.23[OK]Operatingon64-bitarchitecture(3)Reportanalysisimportantitem)suchas[!!]Maximumpossiblememoryusage:4.8G(244.13%ofinstalledRAM),说明内存已被严重使用。关注***给出的建议“建议”。2、Tuning-primer.shmysql是另一个优化工具,对mysql整体进行体检,针对潜在问题给出优化建议。项目地址:https://github.com/BMDan/tuning-primer.sh目前支持检测和优化建议的内容如下:(1)下载[root@localhost~]#wgethttps://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh(2)使用[root@localhost~]#[root@localhostdba]#./tuning-primer.sh--MYSQLPERFORMANCETUNINGPRIMER---By:MatthewMontgomery-(3)报告分析重点检查红色警告的选项,并根据自己系统的实际情况,根据建议进行修改,例如:3.pt-variable-advisorpt-variable-Advisor可以分析MySQL变量并提出可能的问题建议。(1)安装https://www.percona.com/downloads/percona-toolkit/LATEST/[root@localhost~]#wgethttps://www.percona.com/downloads/percona-toolkit/3.0.13/binary/redhat/7/x86_64/percona-toolkit-3.0.13-re85ce15-el7-x86_64-bundle.tar[root@localhost~]#yuminstallpercona-toolkit-3.0.13-1.el7.x86_64.rpm(2)使用pt-variable-advisor是pt工具集的一个子工具,主要用来诊断你的参数设置是否合理。[root@localhost~]#pt-variable-advisorlocalhost--socket/var/lib/mysql/mysql.sock(3)报告分析重点关注有WARN信息的条目,例如:4.pt-qurey-digestpt-query-digest主要功能是从日志、进程列表和tcpdump中分析MySQL查询。(1)安装细节参见3.1节。(2)使用pt-query-digest分析mysql的慢日志。与mysqldumpshow工具相比,py-query_digest工具的分析结果更加具体和完整。[root@localhost~]#pt-query-digest/var/lib/mysql/slowtest-slow.log(3)常见用法分析1)慢查询文件直接分析:pt-query-digest/var/lib/mysql/slowtest-slow.log>slow_report2.log2)分析最近12小时内的查询:pt-query-digest--since=12h/var/lib/mysql/slowtest-slow.log>slow_report2.log3)分析指定范围内时间范围查询:pt-query-digest/var/lib/mysql/slowtest-slow.log--since'2017-01-0709:30:00'--until'2017-01-0710:00:00'>>slow_report3.log4)分析指慢查询pt-query-digest--filter'$event->{fingerprint}=~m/^select/i'/var/lib/mysql/slowtest-slow.log>包含select语句slow_report4.log5)某个用户的慢查询pt-query-digest--filter'($event->{user}||"")=~m/^root/i'/var/lib/mysql/slowtest-slow.log>slow_report5.log6)查询所有全表扫描或全连接慢查询pt-query-digest--filter'(($event->{Full_scan}||"")eq"yes")||(($event->{Full_join}||"")eq"yes")'/var/lib/mysql/slowtest-slow.log>slow_report6.log(4)报表分析***部分:总体统计结果Overally:总共有多少条查询Timerange:查询执行的时间范围unique:唯一查询的个数,即参数化查询条件优化后,总共有多少种不同的查询?Referencevaluemedian:中位数,将所有值从小到大排列,位置居中的数第二部分:查询组统计结果Rank:所有语句的排名,默认是按照查询的降序排列time,由--order-by指定QueryID:语句的ID,(去掉多余的空格和文本字符,计算hash值)Response:总响应时间time:本次分析的query总时间占比calls:执行次数,即总共有多少个这种类型的queryR/Call:每次执行的平均响应时间V/M:响应时间的Variance-to-meanratioItem:QueryobjectPart3:每个查询ID的详细统计结果:查询的ID号对应上图中的QueryIDDatabases:数据库名Users:每个用户执行的次数(比例)Query_timedistribution:查询时间分布,长度反映了区间的比例Tables:查询涉及的表Explain:SQL语句