租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

如何调剂和优化MySQL?

发布时间:2023-03-03 08:35:43

如何调剂和优化MySQL? 需要用到MySQL调谐器,这是一个用Perl 语言编写的漂亮的小脚本,可以让我们验证MySQL安装并提供简短报告和一些改进性能的建议。


如何调整和优化MySQL?.png


下面,我们来了解运行MySQL调谐器的步骤:

第1步:从此处下载调谐器脚本:

wget https://github.com/major/MySQLTuner-perl/blob/461c8fb60e032ce29172393d38183549331fa840/mysqltuner.pl

第2步:提供 mysqltuner.pl 文件履行权限以运行脚本。

chmod +x mysqltuner.pl

第3步:运行脚本

./mysqltuner.pl


脚本完成后,那末如何调剂和优化MySQL?可以查看建议并根据我们的用例决定实行。它们是:

1、key_buffer

通过更改key_buffer参数,我们可以控制对MySQL的内存分配。假定我们有那末多可用内存,这可以明显加快我们的数据库速度。一般的经验法则是,当使用MyISAM 表引擎时,key_buffer大小不应占用超过系统内存的25%,而对InnoDB,则最多可达70%。如果这个值设置得太高,会浪费资源。

根据MySQL官方文档,具有256MB(或更多)RAM且包括许多表的服务器,建议使用64M key_buffer值,而默许值为 16MB。我们可以修改更大的值并为自己的特定服务器找到最好点,但在决定之前始终监控服务器负载统计信息。


2、innodb_buffer_pool_size

InnoDB缓冲池是优化MySQL/MariaDB的关键组件。它存储数据和索引。我们通常可让它尽量大,以便在内存中保存尽量多的数据和索引,减少磁盘IO,这是主要瓶颈。因此,假定服务器专门用于处理/处理sql查询,则典型值介于系统 RAM的70%到80%之间。

该值仅适用于使用InnoDB作为其sql存储引擎的sql服务。


3、最大允许数据包

使用此参数,我们可以设置数据包的最大大小。对外行来讲,数据包是单个SQL状态、发送到客户真个单行,或它可以是从源数据库发送到副本的日志。如果我们的用例触及处理大数据包,最好将此值增加到最大数据包的大小。如果设置得太小,我们会在毛病日志中收到毛病消息。


4、线程缓存大小

如果thread_cache_size设置为0,它实际上是关闭的,任何新连接都需要为其创建一个新线程。当连接关闭时,相应的线程被烧毁。thread_cache_size 参数控制要存储在缓存中的未使用线程的数量,直到它们可以重新用于连接。如果我们每分钟接收数百个连接,则应增加此值,以便大多数连接可使用缓存的线程。


5、最大连接数

该值设置最大并发连接数。最好在设置此数字之前斟酌我们过去具有的最大连接数,以便在该上限数字和max_connections值之间有一个缓冲区。请记住,这其实不表示在任何给定时间我们网站上的最大用户数,而是同时收到的最大要求数。

这些选项并没有在这里结束,但在将默许值之外的值利用于其他sql 配置参数之前要谨慎,由于如果我们具有的工作负载类型和您利用的配置不匹配,它们可能会致使没法预感的问题。


6、尖端:

在开始修改MySQL参数之前,请务必备份/etc/my.cnf

每次进行更改时重新启动MySQL服务,由于它会帮助我们决定哪些特定更改可能有效或无效。

实行MySQL调谐器建议不是一次性修复,我们一定要根据正在处理的数据量或随着系统的垂直扩大定期优化服务参数。


以上是调剂和优化MySQL的建议,希望能帮助到大家!