mysql 之my.cnf配置调优

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 之my.cnf配置调优相关的知识,希望对你有一定的参考价值。

对pre_thread_buffers优化(可以理解为每个连接到mysql的用户进程分配的内存):

  • read_buffer_size 

    该参数表示表的顺序扫描,表示每个线程分配的缓冲区的大小。如在全表扫描时,会按照数据的存储顺序依次读取数据块,每次读取的数据库首先暂存在read_buffer_size中,当buffer空间被写满或者读取结束后,再将buffer中的数据返回给上层调用者,以提高效率。默认128kb,不用设置太大,一般在128~256即可。

  • read_rnd_buffer_size

    该参数表示表的随机读取,表示每个线程分配的缓冲大小,如按照一个非索引字段做order by 排序操作时,就会利用这个缓冲区来暂存取的数据,默认是256kb,也不用设置太多,在128~256即可。

  • sort_buffer_size

    在表进行order by 和group by排序操作时,由于排序的字段没有索引,会出现using filesort,为了提高性能,可用这个参数增加每个线程分配的缓冲区大小。默认是2M,也不用太大,一般在128~256即可,如出现using filesort,可以用索引来解决问题。

  • thread_stack

    该参数表示每个线程的堆栈大小,默认是192kb,如果是64位系统,设置256即可,不用设置过大。

  • join_buffer_size

    表进行join连接操作时,如果关联的字段没有索引,会出现using jion buffer,为了提高性能,可用次参数增加每个线程分配的换成区大小。默认是128kb,一般在128~256即可。一般出现using join buffer的时候,要通过增加索引来解决。

  • binlog_cache_size

    如果数据库没有什么大事物,写入不是特别频繁,这种1~2M是一个合适的选择,如果事物很大,可以适当增加这个值。

  • max_connections

    设置最大连接数,默认是100,一般设置512~1000即可。

pre_thread_buffers内存的计算公式:(read_buffer_size+read_rnd_buffer_size+sort_buffer_size+thread_stack+join_buffer_size+binlog_cache_size)*max_connections


以上是关于mysql 之my.cnf配置调优的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库my.cnf性能参数如何调优

(转)MySQL性能调优my.cnf详解

Mysql之my.cnf配置详解

MySQL之my.cnf配置

MySQL之my.cnf配置文件

mysql性能优化之优化配置my.cnf文件