mysql read_buffer_size 设置多少合适
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 关联的,很重要。