宝塔面板Mysql性能优化指南,初学者必读新手
一般我们把MySQL调优分为以下几个部分:
1.MySQL配置参数调优(必须根据网站运行情况进行调整)
2 . 数据表索引调优(效果很明显,但通常优秀的开源程序不需要调整) 今天主要讲合作有了BT宝塔面板,这样就可以使用新功能来调优MySQL配置参数了,我们先看两张图: 如上图一(当前状态) 如上图2(性能调优) 第一张图是MySQL当前的状态。有 1 个连接。启动MySQL服务后最大连接数为54;当最大连接数接近或等于(图2)中的max_connections时,max_connections应相应增加。需要注意的是,一次不要添加太多。建议每次增加50并观察一段时间。如果还不够,继续添加。 2。线程缓存命中率 3。索引命中率 4。 Innodb 索引命中率 5。查询缓存命中率 6。在磁盘上创建临时表 7。打开表 8。无索引 JOIN 数和无索引 JOIN 数 9。排序后的组合数 10。表锁数量 11。优化方案 注意:保存参数定义后,并不会立即生效。请务必重新启动 MySQL 服务。
3. SQL语句调优(这个是程序员或者DBA做的)
线程缓存命中率(图1)为99.78%。如果该值小于90%,建议相应增加thread_cache_size(图2)。建议每次增加8。
索引(图1)命中率为99.50%。如果该值小于95%,建议相应增加key_buffer_size(图2)。建议每次增加64。你能解释一下吗?是的,如果您的数据库使用Innodb引擎,则可以忽略此选项
(图1) Innodb 索引命中率为100%。如果该值小于95%,建议适当设置。增加 innodb_buffer_pool_size 值(图 2)。建议每次增加64。请注意,如果您的数据库不使用 Innodb 引擎,则可以忽略此选项
MySQL 查询缓存是一个相对有争议的功能。 个人建议,在使用redis、memcached等缓存软件时,可以通过将(图2)中的query_cache_size设置为0来禁用它。当你不使用缓存软件时,内存使用过多且数据库瓶颈明显时,你可以尝试启用查询缓存。该功能高度依赖于数据表的结构和SQL语句的优化。如果数据表结构和SQL语句都针对查询缓存进行优化,Optimized,它的效果还是很好的。
(图1)在磁盘上创建临时表的占比为0.42%,这说明大多数临时表都是在内存中创建的,不会增加太多的磁盘IO开销。建议当比例大于2%时,相应增大tmp_cache_size值(图1)。建议每次增加32。当比例超过60%时,放弃。有些开源程序没有专门优化SQL语句,因此在运行过程中会打开大量临时表,缓存量不够。
当(图1)中的打开表接近或等于(图2)中的table_open_cache时,可以适当增大table_open_cache值,但如果设置太大,可能会导致程序频繁中断。 MySQL连接数建议在1024以内,最大不要超过2048。
如果不为 0,请检查数据表的索引。事实上,只要它不是急剧增长,比如每天数千,通常可以忽略不计。毕竟优化索引更适合程序员或者DBA。
如果该值增加缓慢,建议适当增加sort_buffer_size(图2)。建议每次募集512,但最大不要超过8192。如果这个值继续疯狂,那么增加Sort_buffer_size就没有意义,所以放弃这个选项。这个原因还是落在了程序开发者的肩上。
如果服务器CPU能力较低,疯狂锁表,建议将所有数据表转换为innodb,并记得转换前进行备份。
这是根据内存大小推荐的优化方案。建议仅用于基本参考值。各个配置项要根据实际情况进行调整。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。