MySQL是开源关系数据库管理系统的流行选择之一。借助标准SQL支持,您可以快速查询,操作和将数据添加到MySQL表中。为了根据您的用例从 MySQL 数据库获得最佳性能,您可以使用MySQLTuner 命令。MySQLTuner 是一个PERL脚本,为您提供增强MySQL性能、安全性等的建议。在本文中,将为您推荐如何有效地使用MySQLTuner命令来优化 MySQL 性能。
一、安装 MySQLTuner
1. 您可以通过执行以下任何命令直接下载,还可以使用 git clone或 git clone –depth 1 -b master 下载完整的存储库,后跟上面的cloning URL。
2.要在不调用Perl的情况下运行MySQLTuner,您可以运行以下命令将脚本的权限更改为可执行。
二、运行 MySQLTuner
1.执行以下命令运行MySQLTuner。在此之后,MySQL将要求您提供管理登录名和密码。
您还可以使用系统上任何现有的Perl可执行文件运行MySQLTuner。
2.您还可以根据以下用例应用 MySQLTuner:
- 远程操作,使用量最小。
- 在本地运行,使用量最小。
- 获取有关MySQL的最大输出信息,而无需调试。
- 为您的 MySQL 版本启用 CVE(常见漏洞和披露)检查。
- 将 MySQLTuner 输出保存在显示信息的文件中。
- 将MySQLTuner结果保存在文件中而不显示信息。
- 根据文本::模板语法,使用模板模型自定义报告文件。
- 打开调试信息。
- 必要时更新MySQLTuner和数据文件(密码和CVE)。
三、MySQLTuner建议
MySQL 的配置文件一般位于 /etc/mysql/my.cnf。 通过执行以下命令为配置文件 my.cnf 创建备份始终是一种很好的做法:
您可以根据建议开始一次进行一个小的更改,并在每次更改后检查服务器。每次修改后重新启动服务器可以帮助您检测异常。
如果您的系统具有不同的初始化系统,请使用以下命令:
MySQLTuner可以为您提供与以下参数相关的建议,以提高性能和稳定性:
- Key_buffer:通过修改它,您可以为 MySQL 分配更多内存,从而加快数据库速度。使用 MyISAM 表引擎时,首选大小不应超过总系统内存的 25%,对于 InnoDB 时,首选大小不应超过 70%。MySQL 文档建议为具有 64MB RAM 和许多表的服务器设置 256M。而对于表较少且 RAM 为 16MB 的服务器,建议默认大小为 128M。
- Max_allowed_packet:这允许您设置可发送数据包的最大大小。此数据包可以是单个 SQL 状态、发送到客户端的单个行,甚至是从源数据库发送到副本的日志。对于MySQL服务器将要处理大型数据包的情况,您可以将其增加到最大数据包的大小。
- Thread_stack:尽管MySQL为每个线程设置了默认堆栈大小,但如果记录了与thread_stack相关的错误,则可以增加大小。
- Thread_cache_size:例如,当您每分钟接收数百个连接时,您可以增加它,以便可以在缓存线程上建立大多数连接。
- Max_connections:使用此功能,您可以设置最大并发连接数。可以根据过去的使用情况估计此数字,以便在过去的上限数字和 max_connections 参数之间有一个缓冲区。
- tmp_table_size或max_heap_table_size:更改此设置时,请确保修改它们并将它们设置为相等。根据内存可用性,您可以按大块增加它们,因为这些是全局值。
- Join_buffer_size:当它乘以max_connections时,最好以小的增量增加它。
- Innodb_buffer_pool_size:如果MySQLTuner建议增加此值,则可以使其足够大以容纳所有InnoDB数据库,因为此参数会显着影响您的性能。
在启动MySQL24小时后运行MySQLTuner以获得准确的结果,对于建议不明确的情况,建议咨询您的DBA或您信任的系统管理员。