0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享几个mysql优化的工具

我快闭嘴 来源:今日头条 作者:老王谈运维 2022-09-22 14:52 次阅读
对于正在运行的mysql 性能如何?参数设置的是否合理?账号设置的是否存在安全隐患?

你是否了然于胸?

俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要手段。

今天和大家分享几个mysql 优化的工具,你可以使用它们对你的mysql进行一个体检,生成awr报告,让你从整体上把握你的数据库的性能情况。

54b2fb44-3977-11ed-9e49-dac502259ad0.jpg

1、mysqltuner.pl

这是mysql一个常用的数据库性能诊断工具,主要检查参数设置的合理性包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出改进的建议,是mysql优化的好帮手。

在上一版本中,MySQLTuner支持MySQL / MariaDB / Percona Server的约300个指标。

项目地址:https://github.com/major/MySQLTuner-perl

1.1 下载

[root@localhost~]#wgethttps://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl

1.2 使用

[root@localhost~]#./mysqltuner.pl--socket/var/lib/mysql/mysql.sock
>>MySQLTuner1.7.4-MajorHayden
>>Bugreports,featurerequests,anddownloadsathttp://mysqltuner.com/
>>Runwith'--help'foradditionaloptionsandoutputfiltering
[--]SkippedversioncheckforMySQLTunerscript
PleaseenteryourMySQLadministrativelogin:root
PleaseenteryourMySQLadministrativepassword:[OK]CurrentlyrunningsupportedMySQLversion5.7.23
[OK]Operatingon64-bitarchitecture

	

1.3、报告分析

1)重要关注[!!](中括号有叹号的项)例如[!!] Maximum possible memory usage: 4.8G (244.13% of installed RAM),表示内存已经严重用超了。

54c9da12-3977-11ed-9e49-dac502259ad0.jpg

2)关注最后给的建议“Recommendations ”。

54eca4ca-3977-11ed-9e49-dac502259ad0.jpg

2、tuning-primer.sh

这是mysql的另一个优化工具,针于mysql的整体进行一个体检,对潜在的问题,给出优化的建议。

项目地址:https://github.com/BMDan/tuning-primer.sh

目前,支持检测和优化建议的内容如下:

55011446-3977-11ed-9e49-dac502259ad0.jpg

2.1 下载

[root@localhost~]#wgethttps://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh

	

2.2 使用

[root@localhost~]#[root@localhostdba]#./tuning-primer.sh

--MYSQLPERFORMANCETUNINGPRIMER--
-By:MatthewMontgomery-

	

2.3 报告分析

重点查看有红色告警的选项,根据建议结合自己系统的实际情况进行修改,例如:

55291d24-3977-11ed-9e49-dac502259ad0.jpg

3、pt-variable-advisor

pt-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.rpm

	

3.2 使用

pt-variable-advisor是pt工具集的一个子工具,主要用来诊断你的参数设置是否合理。

[root@localhost~]#pt-variable-advisorlocalhost--socket/var/lib/mysql/mysql.sock

	

3.3 报告分析

重点关注有WARN的信息的条目,例如:

5568733e-3977-11ed-9e49-dac502259ad0.jpg

4、pt-qurey-digest

pt-query-digest 主要功能是从日志、进程列表和tcpdump分析MySQL查询。

4.1安装

具体参考3.1节

4.2使用

pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。

[root@localhost~]#pt-query-digest/var/lib/mysql/slowtest-slow.log

	

4.3 常见用法分析

1)直接分析慢查询文件:

pt-query-digest/
var
/lib/mysql/slowtest-slow.log>slow_report.log

	

2)分析最近12小时内的查询:


	
  1. pt-query-digest--since=12h/var/lib/mysql/slowtest-slow.log>slow_report2.log

3)分析指定时间范围内的查询:

pt-query-digest/var/lib/mysql/slowtest-slow.log--since'2017-01-070900'--until'2017-01-071000'>>slow_report3.log

	

4)分析指含有select语句的慢查询

pt-query-digest--filter'$event->{fingerprint}=~m/^select/i'/var/lib/mysql/slowtest-slow.log>slow_report4.log

	

5)针对某个用户的慢查询


	
pt-query-digest--filter'($event->{user}||"")=~m/^root/i'/var/lib/mysql/slowtest-slow.log>slow_report5.log

6)查询所有所有的全表扫描或full join的慢查询


	
  1. pt-query-digest--filter'(($event->{Full_scan}||"")eq"yes")||(($event->{Full_join}||"")eq"yes")'/var/lib/mysql/slowtest-slow.log>slow_report6.log

4.4 报告分析

  • 第一部分:总体统计结果 Overall:总共有多少条查询 Time range:查询执行的时间范围 unique:唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询 total:总计 min:最小 max:最大 avg:平均 95%:把所有值从小到大排列,位置位于95%的那个数,这个数一般最具有参考价值 median:中位数,把所有值从小到大排列,位置位于中间那个数
  • 第二部分:查询分组统计结果 Rank:所有语句的排名,默认按查询时间降序排列,通过--order-by指定 Query ID:语句的ID,(去掉多余空格和文本字符,计算hash值) Response:总的响应时间 time:该查询在本次分析中总的时间占比 calls:执行次数,即本次分析总共有多少条这种类型的查询语句 R/Call:平均每次执行的响应时间 V/M:响应时间Variance-to-mean的比率 Item:查询对象
  • 第三部分:每一种查询的详细统计结果 ID:查询的ID号,和上图的Query ID对应 Databases:数据库名 Users:各个用户执行的次数(占比) Query_time distribution :查询时间分布, 长短体现区间占比。Tables:查询中涉及到的表 Explain:SQL语句
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43461
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63369
  • MySQL
    +关注

    关注

    1

    文章

    775

    浏览量

    26004

原文标题:有了这 4 款脚本工具,老板再也不怕我写烂SQL了

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MySQL的执行过程 SQL语句性能优化常用策略

    回顾 MySQL 的执行过程,帮助介绍如何进行 sql 优化
    的头像 发表于 12-12 10:26 312次阅读
    <b class='flag-5'>MySQL</b>的执行过程 SQL语句性能<b class='flag-5'>优化</b>常用策略

    Mysql优化选择最佳索引规则

    索引的目的在于提高查询效率,其功能可类比字典,通过该索引可以查询到我们想要查询的信息,因此,选择建立好的索引十分重要,以下是为Mysql优化选择最佳索引的方法步骤:1. 首先列出查询中所有使用的表
    发表于 07-06 15:13

    mysql数据库优化方案

    MySQL千万级大表优化解决方案
    发表于 08-19 12:18

    mysql的查询优化

    mysql查询优化
    发表于 03-12 11:06

    MySQL优化之查询性能优化之查询优化器的局限性与提示

    MySQL优化三:查询性能优化之查询优化器的局限性与提示
    发表于 06-02 06:34

    MySQL索引使用优化和规范

    MySQL - 索引使用优化和规范
    发表于 06-15 16:01

    MySql5.6性能优化最佳实践

    MySql5.6性能优化最佳实践
    发表于 09-08 08:47 13次下载
    <b class='flag-5'>MySql</b>5.6性能<b class='flag-5'>优化</b>最佳实践

    MySQL数据库:理解MySQL的性能优化优化查询

    最近一直在为大家更新MySQL相关学习内容,可能有朋友不懂MySQL的重要性。在程序,语言,架构更新换代频繁的今天,MySQL 恐怕是大家使用最多的存储数据库了。由于MySQL
    的头像 发表于 07-02 17:18 2791次阅读
    <b class='flag-5'>MySQL</b>数据库:理解<b class='flag-5'>MySQL</b>的性能<b class='flag-5'>优化</b>、<b class='flag-5'>优化</b>查询

    MySQL超级复杂?分享几个使用技巧

    MySQL是最知名的关系数据库管理系统,作为LAMP Web开发平台,此开源解决方案在全球广受欢迎。然而,它的流行并不意味着每个使用者都能从MySQL中获得最大收益,因为缺乏使用方法,它可
    发表于 01-19 16:53 569次阅读

    如何优化MySQL百万数据的深分页问题

    我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数据的深分页问题,并附上最近优化生产慢SQL的实战案例。
    的头像 发表于 04-06 15:12 1538次阅读

    介绍一款高颜值的MySQL管理工具

    Sequel Pro是一款管理Mysql工具,界面简洁易用。
    的头像 发表于 02-20 09:14 299次阅读

    你会从哪些维度进行MySQL性能优化?1

    你会从哪些维度进行MySQL性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化。既然是
    的头像 发表于 03-03 10:23 329次阅读
    你会从哪些维度进行<b class='flag-5'>MySQL</b>性能<b class='flag-5'>优化</b>?1

    你会从哪些维度进行MySQL性能优化?2

    你会从哪些维度进行MySQL性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化。既然是
    的头像 发表于 03-03 10:23 325次阅读
    你会从哪些维度进行<b class='flag-5'>MySQL</b>性能<b class='flag-5'>优化</b>?2

    MySQL性能优化方法

    MySQL 性能优化是一项关键的任务,可以提高数据库的运行速度和效率。以下是一些优化方法,包括具体代码和详细优化方案。
    的头像 发表于 11-22 09:59 267次阅读

    MySQL5.7数据导入8.0版本,这3款工具值得收藏!

    MySQL 5.7数据库迁移到MySQL 8.0可以使用NineData、MySQL Shell、Percona XtraBackup和Liquibase等工具。每个
    的头像 发表于 11-29 16:47 423次阅读
    <b class='flag-5'>MySQL</b>5.7数据导入8.0版本,这3款<b class='flag-5'>工具</b>值得收藏!