宝塔mysql性能调整配置参数说明

没有研究mysql之前,一直用的宝塔自带的mysql。每次性能调整的时候,看见上面的参数一脸懵逼,现在有时间来看一下上面的参数都是什么意思,需要设置多大的值最好。

① key_buffer_size

为了最小化磁盘的 I/O , MyISAM 存储引擎的表使用键高速缓存来缓存索引,这个键高速缓存的大小则通过 key-buffer-size 参数来设置。如果应用系统中使用的表以 MyISAM 存储引擎为主,则应该适当增加该参数的值,以便尽可能的缓存索引,提高访问的速度。 

这个参数时针对MyISAM 存储引擎的,现在mysql都是InnoDB的存储引擎,所以一般用不到。

mysql5.7.16默认是8M, 如果大家的数据库用的很多MyISAM可以把参数调成内存的10%

② query_cache_size

查询缓存的大小,我们查询一条sql时,会先到查询缓存中看一下是不是执行过这个sql,之前执行过 的语句及其结果可能会以key-value对的形式,被直接缓存在内存中。key是查询的语句,value是 查询的结果。如果你的查询能够直接在这个缓存中找到key,那么这个value就会被直接返回给客户端。

是不是觉得这个查询缓存有点东西,但是有一个问题是:每次对一个表进行了更新,这个表对应的所有查询缓存都会被清空,因此,有时候费了老大劲把数据进行缓存了,还没有用就清空了,对于更新压力大的数据库 来说,查询缓存的命中率会非常低。除非你的业务就是有一张静态表,很长时间才会更新一次。 比如,一个系统配置表,那这张表上的查询才适合使用查询缓存。

所以,查询缓存对于一些不经常更新操作的数据库非常有用,对于经常更新操作的可能有弊端。

从 MySQL 5.7.20 开始不推荐使用查询缓存,并在 MySQL 8.0 中删除。

如果是系统是不经常执行更新操作的,可以设置为内存的10%,对于经常更新操作的数据库建议关闭设置0;

③ tmp_table_size

临时表的缓存大小,临时表一般会在union语句、group by、子查询会出现。

Mysql5.7 tmp_table_size 配置_天道酬勤-明天会更好的博客-CSDN博客_mysql修改tmp_table_size建议大家看一下上面的这篇文章就明白了,建议设置32M大小,内存大的可以更大一点。

④ innodb_buffer_pool_size  

innodb存储引擎的缓冲池大小。

Mysql InnoDB 缓冲池_天道酬勤-明天会更好的博客-CSDN博客

建议设置内存的60%-70%,这里可能要考虑有些数据库是跟apache、nginx放一起的。

⑤ sort_buffer_size

排序缓存大小,推荐用32M

可以查看Mysql5.7 order by 排序_天道酬勤-明天会更好的博客-CSDN博客

⑥ read_buffer_size

read_buffer_size:是MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。

这个建议可以不用修改。

⑦ read_rnd_buffer_size

此变量用于从MyISAM 表中读取,并且对于任何存储引擎,用于多范围读取优化。

MyISAM在键排序操作后按排序顺序 从表中读取行时,将通过此缓冲区读取行以避免磁盘寻道

不是很理解呀,如果不懂就建议先不修改。

⑧ join_buffer_size

Mysql SQL JOIN 算法_天道酬勤-明天会更好的博客-CSDN博客

主要是针对没有索引的join连接,所以我们应该调大join buffer的值,默认是256KB,如果内存比较足够,例如8G内存建议设置8M。 

⑨ thread_stack

每个连接线程被创建时,MySQL给它分配的内存大小。建议不用修改。

⑩ binlog_cache_size

一个事务,在没有提交(uncommitted)的时候,产生的日志,记录到Cache中;等到事务提交(committed)需要提交的时候,则把日志持久化到磁盘。 如果没有长事务的话建议不用修改。

11)table_open_cache

这个参数表示针对所有threads的table cache总和,5.6.7之前默认是400,5.6.8之后是2000。

这是个server层的参数,mysql不支持并行查询,mysql的会话也没有PGA的概念,一个thread引用myisam表时需要在server层上创建一个table对象(索引也需要创建一个但是是共享的,self join会创建2个,分区表每个分区按单表对待),如果同时多个会话引用一个表也会创建多个表对象,虽然会加大内存使用量,但是却极大的减少了内部表锁的争用。主要是针对MyISAM数据引擎的。

12)max_connections

最大的连接数,这个可以稍微设置大一点。 需要查看show processlist当前mysql的连接数是多少,观察一下平均多少,然后设置平均值*2即可。

我这里配置的是512

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值