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

4款MySQL调优工具,公司大神都在用!

时间:2023-03-11 21:41:39 科技观察

对于运行中的mysql,性能如何,参数设置是否合理,账户设置是否存在安全隐患,你清楚吗?俗话说,工欲善其事,必先利其器。定期对您的MYSQL数据库进行体检是保证数据库安全运行的重要手段,因为一个好的工具可以让您的工作效率翻倍!今天给大家分享几款mysql优化工具。你可以用它们对你的mysql进行体检并生成awr报告,这样你就可以从整体上掌握你的数据库的性能。mysqltuner.pl是mysql常用的数据库性能诊断工具。主要检查参数设置的合理性,包括日志文件、存储引擎、安全建议和性能分析。针对可能存在的问题提出改进建议。是mysql优化的好帮手。在之前的版本中,MySQLTuner支持MySQL/MariaDB/PerconaServer大约300个指标。项目地址:https://github.com/major/MySQLTuner-perl1.1下载[root@localhost~]#wgethttps://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl1.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-bitarchitecture1.3,报告分析1)重要注意[!item)如[!!]Maximumpossiblememoryusage:4.8G(244.13%ofinstalledRAM),说明内存已经被严重使用。2)关注最后一条建议“Recommendations”。tuning-primer.shmysql的另一个优化工具,对mysql进行整体体检,针对潜在问题给出优化建议。项目地址:https://github.com/BMDan/tuning-primer.sh目前支持检测和优化建议的内容如下:2.1下载[root@localhost~]#wgethttps://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh2.2使用[root@localhost~]#[root@localhostdba]#./tuning-primer.sh--MYSQLPERFORMANCETUNINGPRIMER---By:MatthewMontgomery-2.3报告分析重点查看有红色警告的选项,根据建议根据自己系统的实际情况修改,例如:pt-variable-advisorpt-variable-advisor可以分析mysql变量和对可能出现的问题提出建议。3.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.rpm3.2使用pt-variable-advisor是pt工具集的一个子工具,主要用来诊断你的参数设置是否合理。[root@localhost~]#pt-variable-advisorlocalhost--socket/var/lib/mysql/mysql.sock3.3报表分析重点关注有WARN信息的项目,例如:pt-qurey-digestpt-query-digestMain的功能是从日志、进程列表和tcpdump分析MySQL查询。另外,关注公众号码猿技术专栏,回复关键词9527,送你一份SpringCloudAlibaba实战视频教程!4.1安装详见3.1节。4.2使用pt-query-digest主要用于分析mysql的慢日志。与mysqldumpshow工具相比,py-query_digest工具的分析结果更加具体和完整。[root@localhost~]#pt-query-digest/var/lib/mysql/slowtest-slow.log4.3常见用法分析1)慢查询文件直接分析:pt-query-digest/var/lib/mysql/slowtest-slow.log>slow_report.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>slow_report4包含select语句.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.log4.4报告分析第1部分:总体统计Overall:TotalHow有很多疑问吗?timerange:查询执行的时间范围unique:唯一查询次数,即查询条件行参数化后,总共有多少个不同的查询?median:中位数,将所有值从小到大排列,中间的数字为第二部分:查询组统计结果Rank:所有语句的排名,默认按查询时间降序排列,通过--指定QueryIDorder-by:语句的ID,(去掉多余的空格和文本字符,计算hash值)Response:Totalresponsetimetime:本次分析query的总时间占比calls:Executiontimes,即how这个分析有很多项这类查询语句R/Call:每次执行的平均响应时间V/M:响应时间的方差均值比Item:查询对象Part3:每个查询的详细统计结果ID:QueryID号,对应上图中的QueryIDDatabases:数据库名Users:每个用户执行的次数(比例)Query_timedistribution:查询时间分布,长度反映区间比例Tables:查询涉及的表解释:SQL陈述