您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

时间:2023-10-20 11:51:56  来源:今日头条  作者:雪竹聊技术

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

一、概述

MySQL调优工具是用于分析和优化MySQL数据库性能的软件工具。它们可以帮助识别潜在的性能瓶颈、优化查询性能、调整配置参数以及提高数据库的吞吐量和响应时间。今天分享2个常用的工具。

  • mysqltuner.pl:一款免费的Perl脚本工具,用于检查和优化MySQL服务器的配置参数。MySQLTuner会分析MySQL的状态和配置,提供建议来改进性能和安全性。
  • tuning-primer.sh:是一种Shell脚本工具,用于评估和优化MySQL服务器的配置参数。它可以帮助您检查MySQL服务器的状态和配置,并提供相应的建议和优化建议。

二、解决方案

1、mysqltuner.pl

mysqltuner.pl是一个简单而有效的工具,可以帮助您评估和优化MySQL服务器的配置和性能。它提供有关配置、性能和安全性方面的建议,使您能够针对具体问题做出相应的调整和改进。请注意,mysqltuner.pl是一个独立的第三方工具,使用前请确保阅读并理解其文档和指南。

(1)mysqltuner.pl的特点和功能

  • 配置建议:mysqltuner.pl会分析MySQL服务器的配置参数,并提供针对这些参数的建议。它会检查各个参数的设置,并根据最佳实践和性能优化原则,给出相应的建议。这些建议可以帮助您优化服务器配置以获得更好的性能和安全性。
  • 性能建议:除了配置参数,mysqltuner.pl还会分析MySQL服务器的性能指标,如查询缓存命中率、连接数、临时表使用等。它可以提供有关性能瓶颈和优化机会的建议,帮助您识别潜在的性能问题并采取相应的措施。
  • 安全建议:mysqltuner.pl还提供有关MySQL服务器安全性的建议。它会检查安全相关的配置参数和权限设置,并给出改进安全性的建议。这有助于确保MySQL服务器的安全性并防止潜在的安全漏洞。
  • 自动化分析:mysqltuner.pl是一个自动化的工具,可以在您的MySQL服务器上运行,并生成相应的报告。它会收集服务器的状态和配置信息,并对其进行分析和评估。生成的报告中包含详细的建议和统计信息,供您参考和采取相应的措施。

使用语法:

[root@mysqlserver ~]# perl ./mysqltuner.pl --help
Name:
     MySQLTuner 2.2.8 - MySQL High Performance Tuning Script

Important Usage Guidelines:
    To run the script with the default options, run the script without
    arguments Allow MySQL server to run for at least 24-48 hours before
    tRusting suggestions Some routines may require root level privileges
    (script will provide warnings) You must provide the remote server's
    total memory when connecting to other servers

Connection and Authentication:
     --host <hostname>           Connect to a remote host to perform tests (default: localhost)
     --socket <socket>           Use a different socket for a local connection
     --port <port>               Port to use for connection (default: 3306)
     --protocol tcp              Force TCP connection instead of socket
     --user <username>           Username to use for authentication
     --userenv <envvar>          Name of env variable which contAIns username to use for authentication
     --pass <password>           Password to use for authentication
     --passenv <envvar>          Name of env variable which contains password to use for authentication
     --ssl-ca <path>             Path to public key
     --mysqladmin <path>         Path to a custom mysqladmin executable
     --mysqlcmd <path>           Path to a custom mysql executable
     --defaults-file <path>      Path to a custom .my.cnf
     --defaults-extra-file <path>      Path to an extra custom config file
     --server-log <path>         Path to explicit log file (error_log)

Performance and Reporting Options:
     --skipsize                  Don't enumerate tables and their types/sizes (default: on)
                                 (Recommended for servers with many tables)
     --json                      Print result as JSON string
     --prettyjson                Print result as JSON formatted string
     --skippassword              Don't perform checks on user passwords (default: off)
     --checkversion              Check for updates to MySQLTuner (default: don't check)
     --updateversion             Check for updates to MySQLTuner and update when newer version is available (default: don't check)
     --forcemem <size>           Amount of RAM installed in megabytes
     --forceswap <size>          Amount of swap memory configured in megabytes
     --passwordfile <path>       Path to a password file list (one password by line)
     --cvefile <path>            CVE File for vulnerability checks
     --outputfile <path>         Path to a output txt file
     --reportfile <path>         Path to a report txt file
     --template   <path>         Path to a template file
     --dumpdir <path>            Path to a directory where to dump information files
     --feature <feature>         Run a specific feature (see FEATURES section)
    =head1 OUTPUT OPTIONS

     --silent                    Don't output anything on screen
     --verbose                   Print out all options (default: no verbose, dbstat, idxstat, sysstat, tbstat, pfstat)
     --nocolor                   Don't print output in color
     --nogood                    Remove OK responses
     --nobad                     Remove negative/suggestion responses
     --noinfo                    Remove informational responses
     --debug                     Print debug information
     --noprocess                 Consider no other process is running
     --dbstat                    Print database information
     --nodbstat                  Don't print database information
     --tbstat                    Print table information
     --notbstat                  Don't print table information
     --colstat                   Print column information
     --nocolstat                 Don't print column information
     --idxstat                   Print index information
     --noidxstat                 Don't print index information
     --nomyisamstat              Don't print MyIsam information
     --sysstat                   Print system information
     --nosysstat                 Don't print system information
     --nostructstat              Don't print table structures information
     --pfstat                    Print Performance schema
     --nopfstat                  Don't print Performance schema
     --bannedports               Ports banned separated by comma (,)
     --server-log                Define specific error_log to analyze
     --maxportallowed            Number of open ports allowable on this host
     --buffers                   Print global and per-thread buffer values

(2)使用过程

上传运行此脚本的linux服务器并赋予执行权限。

chmod 755  mysqltuner.pl

执行分析。

[root@mysqlserver ~]# perl ./mysqltuner.pl  --host 192.168.209.128 --port 3307 --user root --pass 'Rootasdf2023##'

参数说明:

  • --host:指定连接的主机
  • --port:主机端口
  • --user:数据库用户
  • --pass:数据库的密码

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

2、tuning-primer.sh

tuning-primer.sh是一个方便的工具,可以帮助您评估和优化MySQL服务器的配置和性能。它提供了有关配置、性能和安全性方面的评估和建议,使您能够做出相应的调整和改进。

(1)tuning-primer.sh的特点和功能

  • 配置评估:tuning-primer.sh会分析MySQL服务器的配置参数,并评估它们的设置。它会检查各个参数的值,并提供有关配置优化的建议。这些建议基于最佳实践和性能优化原则,旨在改善服务器的性能和稳定性。
  • 性能评估:除了配置参数,tuning-primer.sh还会收集和分析MySQL服务器的性能指标。它会检查缓存使用情况、连接数、索引使用等方面的统计信息,并提供有关性能瓶颈和调优机会的建议。这些建议可以帮助您识别潜在的性能问题并采取相应的措施。
  • 安全评估:tuning-primer.sh还提供有关MySQL服务器安全性的评估。它会检查安全相关的配置参数和权限设置,并给出改善安全性的建议。这有助于确保MySQL服务器的安全性并减少潜在的安全风险。
  • 报告生成:tuning-primer.sh生成一个详细的报告,其中包含服务器配置、性能评估和建议。报告提供了对服务器状态和潜在问题的全面概述,以及相应的建议和优化提示。您可以使用生成的报告作为参考,根据需要进行配置和性能优化。

(2)使用方法

上传到服务器,并赋予执行权限。

chmod 755 tuning-primer.sh

执行分析。

./tuning-primer.sh

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

输出结果:

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

MySQL调优工具:MySQLtuner.pl及tuning-primer.sh

三、两者比较

  • 语言和平台:mysqltuner.pl是一个Perl脚本工具,而tuning-primer.sh是一个Shell脚本工具。这意味着它们使用不同的脚本语言和运行环境。这一点可能会影响到在不同系统上的可用性和运行方式。
  • 功能:两者都提供了对MySQL服务器的配置参数、性能指标和安全性的评估。它们分析服务器的状态和配置,并给出相应的建议和优化提示。然而,它们的具体实现和生成的报告可能有所不同,因此建议在使用之前详细了解其功能和输出。个人感觉最大的不同是mysqltuner.pl支持远程连接,而tuning-primer.sh仅支持本机连接。
  • 社区支持和更新:mysqltuner.pl和tuning-primer.sh都是由开源社区开发和维护的工具。然而,它们的社区支持和更新频率可能有所不同。建议在选择使用之前,查看其社区的活跃程度和最新的版本状态。
  • 定制性和可扩展性:由于是脚本工具,mysqltuner.pl和tuning-primer.sh都具有一定的定制性和可扩展性。您可以根据自己的需求进行修改和定制,以适应特定环境和配置。

四、下载地址

https://www.xsof.NET.com/share/a000DfntxEeev.html



Tags:MySQL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
MySQL 核心模块揭秘
server 层会创建一个 SAVEPOINT 对象,用于存放 savepoint 信息。binlog 会把 binlog offset 写入 server 层为它分配的一块 8 字节的内存里。 InnoDB 会维护自己的 savepoint...【详细内容】
2024-04-03  Search: MySQL  点击:(5)  评论:(0)  加入收藏
MySQL 核心模块揭秘,你看明白了吗?
为了提升分配 undo 段的效率,事务提交过程中,InnoDB 会缓存一些 undo 段。只要同时满足两个条件,insert undo 段或 update undo 段就能被缓存。1. 关于缓存 undo 段为了提升分...【详细内容】
2024-03-27  Search: MySQL  点击:(10)  评论:(0)  加入收藏
MySQL:BUG导致DDL语句无谓的索引重建
对于5.7.23之前的版本在评估类似DDL操作的时候需要谨慎,可能评估为瞬间操作,但是实际上线的时候跑了很久,这个就容易导致超过维护窗口,甚至更大的故障。一、问题模拟使用5.7.22...【详细内容】
2024-03-26  Search: MySQL  点击:(8)  评论:(0)  加入收藏
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读
ByteHouse是一款OLAP引擎,具备查询效率高的特点,在硬件需求上相对较低,且具有良好的水平扩展性,如果数据量进一步增长,可以通过增加服务器数量来提升处理能力。本文将从兴趣圈层...【详细内容】
2024-03-22  Search: MySQL  点击:(23)  评论:(0)  加入收藏
MySQL自增主键一定是连续的吗?
测试环境:MySQL版本:8.0数据库表:T (主键id,唯一索引c,普通字段d)如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不...【详细内容】
2024-03-10  Search: MySQL  点击:(5)  评论:(0)  加入收藏
准线上事故之MySQL优化器索引选错
1 背景最近组里来了许多新的小伙伴,大家在一起聊聊技术,有小兄弟提到了MySQL的优化器的内部策略,想起了之前在公司出现的一个线上问题,今天借着这个机会,在这里分享下过程和结论...【详细内容】
2024-03-07  Search: MySQL  点击:(26)  评论:(0)  加入收藏
MySQL数据恢复,你会吗?
今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。主要...【详细内容】
2024-02-22  Search: MySQL  点击:(43)  评论:(0)  加入收藏
如何在MySQL中实现数据的版本管理和回滚操作?
实现数据的版本管理和回滚操作在MySQL中可以通过以下几种方式实现,包括使用事务、备份恢复、日志和版本控制工具等。下面将详细介绍这些方法。1.使用事务:MySQL支持事务操作,可...【详细内容】
2024-02-20  Search: MySQL  点击:(51)  评论:(0)  加入收藏
为什么高性能场景选用Postgres SQL 而不是 MySQL
一、 数据库简介 TLDR;1.1 MySQL MySQL声称自己是最流行的开源数据库,它属于最流行的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。LAMP...【详细内容】
2024-02-19  Search: MySQL  点击:(37)  评论:(0)  加入收藏
MySQL数据库如何生成分组排序的序号
经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。...【详细内容】
2024-01-30  Search: MySQL  点击:(53)  评论:(0)  加入收藏
▌简易百科推荐
MySQL 核心模块揭秘
server 层会创建一个 SAVEPOINT 对象,用于存放 savepoint 信息。binlog 会把 binlog offset 写入 server 层为它分配的一块 8 字节的内存里。 InnoDB 会维护自己的 savepoint...【详细内容】
2024-04-03  爱可生开源社区    Tags:MySQL   点击:(5)  评论:(0)  加入收藏
MySQL 核心模块揭秘,你看明白了吗?
为了提升分配 undo 段的效率,事务提交过程中,InnoDB 会缓存一些 undo 段。只要同时满足两个条件,insert undo 段或 update undo 段就能被缓存。1. 关于缓存 undo 段为了提升分...【详细内容】
2024-03-27  爱可生开源社区  微信公众号  Tags:MySQL   点击:(10)  评论:(0)  加入收藏
MySQL:BUG导致DDL语句无谓的索引重建
对于5.7.23之前的版本在评估类似DDL操作的时候需要谨慎,可能评估为瞬间操作,但是实际上线的时候跑了很久,这个就容易导致超过维护窗口,甚至更大的故障。一、问题模拟使用5.7.22...【详细内容】
2024-03-26  MySQL学习  微信公众号  Tags:MySQL   点击:(8)  评论:(0)  加入收藏
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读
ByteHouse是一款OLAP引擎,具备查询效率高的特点,在硬件需求上相对较低,且具有良好的水平扩展性,如果数据量进一步增长,可以通过增加服务器数量来提升处理能力。本文将从兴趣圈层...【详细内容】
2024-03-22  字节跳动技术团队    Tags:ByteHouse   点击:(23)  评论:(0)  加入收藏
MySQL自增主键一定是连续的吗?
测试环境:MySQL版本:8.0数据库表:T (主键id,唯一索引c,普通字段d)如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不...【详细内容】
2024-03-10    dbaplus社群  Tags:MySQL   点击:(5)  评论:(0)  加入收藏
准线上事故之MySQL优化器索引选错
1 背景最近组里来了许多新的小伙伴,大家在一起聊聊技术,有小兄弟提到了MySQL的优化器的内部策略,想起了之前在公司出现的一个线上问题,今天借着这个机会,在这里分享下过程和结论...【详细内容】
2024-03-07  转转技术  微信公众号  Tags:MySQL   点击:(26)  评论:(0)  加入收藏
MySQL数据恢复,你会吗?
今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。主要...【详细内容】
2024-02-22  数据库干货铺  微信公众号  Tags:MySQL   点击:(43)  评论:(0)  加入收藏
如何在MySQL中实现数据的版本管理和回滚操作?
实现数据的版本管理和回滚操作在MySQL中可以通过以下几种方式实现,包括使用事务、备份恢复、日志和版本控制工具等。下面将详细介绍这些方法。1.使用事务:MySQL支持事务操作,可...【详细内容】
2024-02-20  编程技术汇    Tags:MySQL   点击:(51)  评论:(0)  加入收藏
MySQL数据库如何生成分组排序的序号
经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。...【详细内容】
2024-01-30  数据库干货铺  微信公众号  Tags:MySQL   点击:(53)  评论:(0)  加入收藏
mysql索引失效的场景
MySQL中索引失效是指数据库查询时无法有效利用索引,这可能导致查询性能显著下降。以下是一些常见的MySQL索引失效的场景:1.使用非前导列进行查询: 假设有一个复合索引 (A, B)。...【详细内容】
2024-01-15  小王爱编程  今日头条  Tags:mysql索引   点击:(82)  评论:(0)  加入收藏
站内最新
站内热门
站内头条