Skip to content

本文的推荐参数值设置基于4G-8G内存的服务器。具体情况根据服务器环境再做调整。

SettingDefaultRecommendedInfo
back_log50500参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
key_buffer_size8388600(8m)402649088(400mb)指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。
max_allowed_packet1024(1m)20480(20m)MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败。
thread_stack196608(192KB)262,144(256KB)每个连接线程被创建时,MySQL给它分配的内存大小。当MySQL创建一个新的连接线程时,需要给它分配一定大小的内存堆栈空间,以便存放客户端的请求的Query及自身的各种状态和处理信息。
table_cache2000512table_cache是一个非常重要的MySQL性能参数,它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于设置table高速缓存的数量。
sort_buffer_size1048576(1m)1048576(1m)查询排序时所能使用的缓冲区大小。sort_buffer_size并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。
read_buffer_size1048576(1m)1048576(1m)读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
join_buffer_size1048576(1m)1048576(1m)联合查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
thread_cache_size3232/64线程缓存大小。
query_cache_size032MySQL高速缓存。
tmp_table_size1677721616777216配置内部内存临时表的大小。
max_connections1003000指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现TooManyConnections的错误提示,则需要增大该参数值。
max_connect_errors100100如果MySQL服务器连续接收到了来自于同一个主机的请求,而且这些连续的请求全部都没有成功的建立连接就被中断了,当这些连续的请求的累计值大于max_connect_errors的设定值时,MySQL服务器就会阻止这台主机后续的所有请求。
wait_timeout28800(8小时)28800(8小时)在默认配置不改变的情况下,如果连续8小时内都没有访问数据库的操作,再次访问mysql数据库的时候,mysql数据库会拒绝访问。

错误调整

部分参数可能因为版本升级导致弃用或者默认值变化,具体情况还需具体分析。

unknown variable 'key-buffer=256M' ,修改my.cnf文件去掉改项即可。

unknown variable 'table-cache=512' 修改为table_open_cache即可。

unknown variable 'thread-concurrency=8' 去掉改项,5.7已结废弃。

To Be Continued!😎