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 关联的,很重要。

点赞(116)

评论列表共有 0 条评论

立即
投稿
返回
顶部