当前位置: 首页 > Linux

通过宝塔面板实现MySQL性能简单调优

时间:2023-04-06 21:18:11 Linux

通过宝塔面板简单调优MySQL性能影响网站性能的常见且最难的因素;通常,我们会使用redis、memcached等缓存软件来缓存内容。这确实是最好的解决方案之一,但它需要网站程序的支持,但大多数常见的网站程序不支持或不能完美支持这些缓存软件。今天我们就来聊一聊如何通过MySQL自身的配置调整来优化MySQL性能,缓解MySQL瓶颈。准备工作:1、宝塔Linux面板正式版5.2.0+(2017年9月20日发布)Beta版5.2.4+2、MySQL5.x通常MySQL调优分为以下几个部分:1、MySQL配置参数调优(需要根据网站的运行情况进行调整)2、数据表索引调优(效果明显,但一般优秀的开源程序不需要调整)3、SQL语句调优(这个是程序员或者DBA们做的)今天我们主要来说说宝塔面板新功能如何调整MySQL的配置参数。我们先来看两张图。很明显,(图1)显示了MySQL当前的运行状态,(图2)显示了MySQL的主要配置。Parameters下面对这两个图进行解读:1.Active/PeakNumberofConnections(图1)当前活跃连接数为1,自MySQL服务启动以来,最高连接数为54;当最高连接数接近或等于(图2)中的max_connections时,应适当增加max_connections。需要注意的是,不要一下子增加太多。建议每次增加50,观察一段时间,不够就继续增加。2.线程缓存命中率(图1)(图1)中的线程缓存命中率为99.78%。如果这个值小于90%,建议适当增加(图2)中的thread_cache_size,建议每次增加8。3.指标命中率(图1)指标命中率(图1)为99.50%。如果这个值小于95%,建议适当增加(图2)中的key_buffer_size,建议每次增加64。需要注意的是,如果你的数据库使用的是Innodb引擎,这个选项可以忽略Add64。需要注意的是,如果你的数据库没有使用Innodb引擎,可以忽略这个选项。5.查询缓存命中率MySQL查询缓存是一个有争议的功能。个人建议大家使用redis、memcached等缓存软件,在(图2)中将query_cache_size设置为0即可关闭。当你没有使用缓存软件,内存占用过大,数据库瓶颈明显存在时,可以尝试开启查询缓存,它非常依赖数据表结构和SQL语句优化功能,如果数据表结构和SQL语句都针对查询缓存进行了优化,其效果还是很不错的。6、创建临时表到磁盘(图1)创建临时表到磁盘的比例为0.42%,这意味着大部分临时表都是在内存中创建的,不会过多增加磁盘IO开销。建议当比例大于2%时增加(图1)中的tmp_cache_size,建议每次增加32,当比例大于60%时,放弃,有些开源程序没有具体说明优化了SQL语句,所以运行时会打开大量的临时表,再多的缓存也不够。7.打开的表当(图1)中打开的表接近或等于(图2)中的table_open_cache时,可以适当增加table_open_cache,但如果设置过大,你的程序可能会频繁中断MySQL连接。建议在1024以内,最大不要超过2048。8.未使用的索引量和未使用的JOINs量可以忽略,毕竟程序员或者DBA优化索引更合适。9.排序后合并的次数如果这个值在慢慢增加,建议适当增加(图2)中的sort_buffer_size。建议每次增加512,但最大不要超过8192,如果这个值一直在暴涨,增加sort_buffer_size也行不通,不用的话,直接放弃这个选项,让程序开发人员承担责任。10.表锁的数量如果服务器CPU开销不高,就会疯狂的锁表。建议大家把所有的数据表都转成innodb,转之前记得备份。11.优化方案这是根据内存大小推荐的优化方案。仅作为基本参考值推荐,或根据实际情况调整各配置项。注意:保存参数配置后,不会立即生效。记得重启MySQL服务。