Mysql我们部署使用的非常广泛,我们希望他能够近乎完美的支撑业务,所以我们需要让它符合我们业务的现状,所以我们需要对其就行调整。
QPS 与 TPS IOPS 的关系
`QPS` 指的是 每秒查询数,是一台服务器每秒能够响应的查询次数
`TPS` 指的是 每秒处理的事务数,事务 就是 客户端 与 服务端建立链接的过程,(发送请求,响应,反馈结果),1个TPS 后可以有多个QPS产生
`IOPS` 是指存储每秒可接受多少次主机发出的访问
一、根据实际情况 调整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,公有云 数据库 性能较好,可能设置会更大。
- QQ精品交流群
-
- 微信公众号
-