Mysql参数优化的详细步骤

  

本篇文章给大家主要讲的是关于Mysql参数优化的详细步骤的内容,感兴趣的话就一起来看看这篇文章吧,相信看完Mysql参数优化的详细步骤对大家多少有点参考价值吧。

连接优化

back_log=500(默认50)

Mysql的连接达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。将会报:unauthenticated  user  |, xxx.xxx.xxx.xxx  |, NULL  |, Connect  |, NULL  |, login  |, NULL 的待连接进程时.back_log值不能超过TCP/IP连接的侦听队列的大小。若超过则无效,查看当前系统的TCP/IP连接的侦听队列的大小命令:cat 在/proc/sys/net/ipv4/tcp_max_syn_backlog目前系统为1024。对于Linux系统推荐设置为小于512的整数。

wait_timeout=1800(默认8小时,单位秒)

Mysql客户端的数据库连接闲置最大时间值;有大量的睡眠长时间占用内存和连接数,则需要修改此项。

max_connections=3000(默认151)

Mysql的最大连接数,如果云服务器的并发连接请求量比较大,建议调高此值,连接数越多占用内存越多

max_connect_errors =, 10000000

尽量设大,防止错误链接数过多导致无法写入数据

CPU优化

, thread_concurrency=16(默认8)

正确设置可以充分利用多核CPU、thread_concurrency应设为CPU核数的2倍

网络优化

skip-name-resolve(默认被注释)

禁止Mysql对外部连接进行DNS解析,使用这一选项可以避免Mysql进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则Mysql将无法正常处理连接请求!

IO优化

, key_buffer_size=400 (MyISAM)

用于索引块的缓冲区大小,对MyISAM影响较大的参数.key_reads /, key_read_requests在0.1之下比较好

 key_cache_miss_rate =, Key_reads /Key_read_requests  *, 100%
  show  status  like  & # 39; key_read % & # 39;;
  + - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  |,Variable_name ,,,, |, Value  |
  + - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  | |,Key_read_requests  28535 |
  |,Key_reads ,,,,,,,, |, 269,, |
  + - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  以上key_cache_miss_rate大于0.1%,则需要增大参数.key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
  mysql>, show  global  status  like  & # 39; key_blocks_u % & # 39;;
  +---------------------------+
  |,Variable_name ,,,, |, Value  |
  +---------------------------+
  | |,Key_blocks_unused  0,,,, |
  |,Key_blocks_used ,, | 413543 |
  +---------------------------+
  Key_blocks_unused表示未使用的缓存簇数(块),Key_blocks_used表示曾经用到的最大的数块,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:
  Key_blocks_used /,(时间+ Key_blocks_unused  Key_blocks_used), *, 100%,≈, 80% 

通过innodb_buffer_pool_size=2048,(默认128,InnoDB)

用于缓存数据块和索引键。对InnoDB表性能影响最大的一个参数,增加这个参数的大小,可以有效的减少,InnoDB 类型的表的磁盘,我/O 。

 SHOW  GLOBAL  STATUS  LIKE  & # 39; innodb_buffer_pool_pages_ % & # 39;;
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  |,Variable_name ,,,,,,,,,,,,,,,,,,, |, Value  |
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  |,Innodb_buffer_pool_pages_data ,,, |, 129037 |
  |,Innodb_buffer_pool_pages_dirty ,, |, 362,,, |
  | |,Innodb_buffer_pool_pages_flushed  9998年,,|
  |,Innodb_buffer_pool_pages_free ,,, |, 0,,,,,, |,, ! ! ! ! ! ! ! !
  |,Innodb_buffer_pool_pages_misc ,,, |, 2035,, |
  |,Innodb_buffer_pool_pages_total ,, |, 131072 |
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  6,rows  set 拷贝;(0.00,sec)
  
  为,Innodb_buffer_pool_pages_free  0,则说明,buffer  pool 已经被用光,需要增大通过innodb_buffer_pool_size
  ,建议使用,所有内存的,75%,(在剩余内存能够保证系统和其它服务正常运行的情况下)

innodb_additional_mem_pool_size=100(默认8米)

Mysql参数优化的详细步骤