影响数据库性能的常见因素如下:
(1)磁盘IO;
(2)网卡流量;
(3)服务器硬件;
(4)SQL查询速度。

下面介绍几个mysql 优化的工具,可以使用它们对MySQL进行检查,生成awr报告,从整体上把握数据库的性能情况。

一、MySQLTuner.pl

MySQLTuner是MySQL一个常用的数据库性能诊断工具,主要检查参数设置的合理性,包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出改进的建议,帮助进行MySQL优化。MySQLTuner支持MySQL / MariaDB / Percona Server的约300个指标。

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

1.1 下载

wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl

1.2 使用

[root@localhost ~]# ./mysqltuner.pl --socket /var/lib/mysql/mysql.sock>> MySQLTuner 1.7.4 - Major Hayden <major@mhtx.net>>> Bug reports, feature requests, and downloads at http://mysqltuner.com/>> Run with '--help' for additional options and output filtering
[--] Skipped version check for MySQLTuner script
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password: [OK] Currently running supported MySQL version 5.7.23
[OK] Operating on 64-bit architecture

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

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

二、tuning-primer

tuning-primer针于mysql的整体进行一个体检,对潜在的问题,给出优化的建议。

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

目前,支持检测和优化建议的内容如下:
(1)慢查询日志
(2)最大连接数
(3)工人线程
(4)密钥缓冲区【仅限MyISAM】
(5)查询缓存
(6)排序缓冲区
(7)加盟
(8)临时表
(9)表(开放和定义)缓存
(10)表锁定
(11)表扫描(read_buffer)【仅限MyISAM】
(12)InnoDB状态

2.1 下载

wget https://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh

2.2 使用

[root@localhost ~]# [root@localhost dba]# ./tuning-primer.sh-- MYSQL PERFORMANCE TUNING PRIMER --- By: Matthew Montgomery -

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

三、pt-variable-advisor
pt-variable-advisor 可以分析MySQL变量,并就可能出现的问题提出建议。

3.1 安装
https://www.percona.com/downloads/percona-toolkit/LATEST/

[root@localhost ~]#wget https://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 ~]#yum install percona-toolkit-3.0.13-1.el7.x86_64.rpm

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

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

3.3 报告分析
重点关注有WARN的信息的条目,例如:

四、pt-qurey-digest

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

4.1安装
https://www.percona.com/downloads/percona-toolkit/LATEST/

[root@localhost ~]#wget https://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 ~]#yum install percona-toolkit-3.0.13-1.el7.x86_64.rpm

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小时内的查询:

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-07 09:30:00' --until '2017-01-07 10:00:00'> > 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的慢查询

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语句。

参考:https://mp.weixin.qq.com/s/dqxh1bIn5XlPQERAhQZ4xA

MySQL:常用的MySQL优化工具相关推荐

  1. 计算机二级mysql工具_2020年全国计算机二级MySQL复习知识点:优化工具

    [摘要] 即将参加全国计算机等级考试的考生们,考试即将到来,大家的备考工作进行得如何了?考必过为大家精心整理了2020年全国计算机二级MySQL复习知识点:优化工具,希望能够助力全国计算机等级考试,相 ...

  2. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  3. 【性能优化】MySQL常用慢查询分析工具

    常用慢查询分析工具 引言 在日常的业务开发中 MySQL 出现慢查询是很常见的 大部分情况下会分为两种情况 1.业务增长太快 2.要么就是SQL 写的太xx了 所以 对慢查询 SQL 进行分析和优化很 ...

  4. mysql常用sql语句优化

    转载自:http://www.cnblogs.com/gomysql/p/3632209.html 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素.当然还有其他方 ...

  5. mysql常用操作 mysql备份与恢复

    先登录mysql  ==>mysql -uroot -p  查看数据库的版本 select version(); 查看有哪些库 show datases; 查看当前处于哪个库 select da ...

  6. 4 个 MySQL 优化工具 AWR,帮你准确定位数据库瓶颈!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:今日头条,作者:老王谈运维 www.toutiao.com/ ...

  7. awr报告分析 mysql_4个MySQL优化工具,帮你准确定位数据库瓶颈!

    作者:老王谈运维原文:https://www.toutiao.com/a6691523026984370699/ 对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你 ...

  8. MySQL数据库卸载+MySQL常用的图形化管理工具介绍

    MySQL数据库卸载 我们为什么需要卸载MySQL呢?可能是因为安装的时候安装出错,也可能是因为版本过低,导致一些问题没办法进行解决,所以需要卸载MySQL,重新安装最新版的MySQL. 第一步:停止 ...

  9. 晨魅--MySQL常用命令

    MySQL常用命令 MySQL初步命令 1        MySQL数据库基础命令 1.1    创建.查看数据库 1.1.1  查看系统数据库 SHOW DATABASES 1.1.2  创建用户数 ...

  10. 设置更改root密码 连接mysql mysql常用命令

    一.设置更改root密码 #/etc/init.d/mysqld start #ps aux |grep mysql #mysql -uroot //提示-bash: mysql : 未找到命令 #l ...

最新文章

  1. 全屏四摄颜值王荣耀9青春版炫美开售 1199元起
  2. l源码安装mysql升级_[Linux]javaEE篇:源码安装mysql
  3. 在iOS中求数组元素中最大数与最小数
  4. RocketMQ事务消息从生产到消费原理详解(包括回查过程)
  5. vscode在windows10系统下进行go语言编程(无法代码提示)
  6. python定位相邻节点_Python selenium 父子、兄弟、相邻节点定位方式详解
  7. 欧拉定理、费马小定理及其拓展应用
  8. 上传multipart文件
  9. splay tree成段更新,成段查询poj3466
  10. python基于大数据的食物推荐系统
  11. 【ENVI解决经验】裁剪后背景改为白色(透明)
  12. 商品库存清单案例(Java)
  13. Easy Excel动态组合导出
  14. 3dgis java_BIM与三维GIS结合
  15. 柴静穹顶之下 感想
  16. CJOJ 1659 【中学高级本】倒酒
  17. React生成二维码并将canvas转换成img格式
  18. 网易笔试题(java 、 c++ 、软件测试等)
  19. 遇到错误: 任务未能使用 SdkToolsPath“”或注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\NETFXSDK\4.7.2
  20. a += 1、a = a + 1、a++区别

热门文章

  1. 如何通过sstap实现本地静态ip
  2. PlecsMMA学习1
  3. PMP项目管理项目资源管理
  4. 达梦数据库索引的创建与测试
  5. VM 17player 没有vm tools的 解决方案
  6. 图像分割 - Hough变换直线检测
  7. 围观设计模式(23)--行为型之命令模式(Command Pattern)
  8. Tkinter教程之Grid篇
  9. Html 作业:静态页面
  10. PHP 大型网站高并发大流量解决方案