Mysql性能优化实战

管理员
管理员
管理员
60
文章
1
评论
2019年6月10日16:22:47 评论 105

Mysql我们部署使用的非常广泛,我们希望他能够近乎完美的支撑业务,所以我们需要让它符合我们业务的现状,所以我们需要对其就行调整。

一、根据实际情况 调整Mysql如下几个参数

活动/峰值连接数    1/50    若值过大,增加max_connections
线程缓存命中率 99.90%  若过低,增加thread_cache_size
索引命中率   50.00%  若过低,增加key_buffer_size
Innodb索引命中率 100.00% 若过低,增加innodb_buffer_pool_size
查询缓存命中率 OFF 若过低,增加query_cache_size
创建临时表到磁盘    72.49%  若过大,尝试增加tmp_table_size
已打开的表   128 若过大,增加table_cache_size
没有使用索引的量    15  若不为0,请检查数据表的索引是否合理
没有索引的JOIN量  0   若不为0,请检查数据表的索引是否合理
排序后的合并次数    6   若值过大,增加sort_buffer_size
锁表次数    0   若值过大,请考虑增加您的数据库性能

以上数据可以通过mysql 命令进行查询

二、服务器 8-16G 内存配置案例如下:

key_buffer_size  512MB, 用于索引的缓冲区大小

query_cache_size 0 MB, 查询缓存,不开启请设为 0

tmp_table_size  1024MB, 临时表缓存大小

innodb_buffer_pool_size 1024MB, Innodb缓冲区大小

innodb_log_buffer_size 16MB, Innodb日志缓冲区大小

sort_buffer_size 2048KB * 连接数, 每个线程排序的缓冲大小

read_buffer_size 2048KB * 连接数, 读入缓冲区大小

read_rnd_buffer_size 1024KB * 连接数, 随机读取缓冲区大小

join_buffer_size 4096KB * 连接数, 关联表缓存大小

thread_stack 384 KB * 连接数, 每个线程的堆栈大小

binlog_cache_size 192 KB * 连接数, 二进制日志缓存大小(4096的倍数)

thread_cache_size 192 线程池大小

table_open_cache 1024 表缓存(最大不要超过2048)

max_connections 1024 最大连接数

以上只针对自建mysql,公有云 数据库 性能较好,可能设置会更大。

此文转载于逗哥-架构师之路

weinxin
wireshark中文社区
微信公众号扫一扫
管理员
  • 本文由 发表于 2019年6月10日16:22:47
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: