key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 458624 K
read_buffer_size:是MySQL读入缓冲区大校对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大校如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。
如下是对于16g内存的设置
read_buffer_size = 1M
个人机器是32G的,一般数据库就用来存储数据,很少用mysql 所以我就设置为2M或3M
手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU
业务场景:后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器。
qps: 200个左右
tps: 1个左右 一分钟50几个
sort_buffer_size = 32M 大了, 8M即可
read_buffer_size = 32M 大了,8M即可
read_rnd_buffer_size = 16M 大了,8M即可
table_open_cache = 512
小了,建议改成2048
max_allowed_packet = 5M
小了,建议改成16M
tmp_table_size=64M
小了,建议改成2G
innodb_buffer_pool_size = 3000M
小了,改成db服务器总内存的60% 到80%
innodb_additional_mem_pool_size = 20M 小了,改成128M
join_buffer_size 这个参数为什么没有看到,必须设置值,join_buffer_size = 8M 必须补上,这个是跟join table 关联的,很重要。