本篇文章给大家主要讲的是关于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米)