MySQL5.7配置优化


最大连接数

max_connections = 1000 #默认151

排队等待的最大连接数

back_log = 1024 #默认250

排队等待的最大连接数,当连接数超过max_connections时,新来的连接可以放到堆栈里面,当堆栈里面的连接超过back_log设置的数量,之后的连接将不被授予连接资源

这个值大于cat /proc/sys/net/core/somaxconn 是无效的

利用多核

innodb默认可以利用4核
mysql> show variables like '%_io_threads';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| innodb_read_io_threads  | 4     |
| innodb_write_io_threads | 4     |
+-------------------------+-------+
比如,你现在升级到16核了,直接在my.cnf里面加入配置:

innodb_read_io_threads = 8

innodb_write_io_threads = 8

这样就是读和写平均,如果你读的比较多,那么可以:

innodb_read_io_threads = 10

innodb_write_io_threads = 6

如果你写的比较多,那么可以:

innodb_read_io_threads = 6

innodb_write_io_threads = 10

InnoDB相关优化

innodb_log_file_size = 64M

innodb_buffer_pool_size=268435456

参考文档

https://yq.aliyun.com/ziliao/146460

https://www.cnblogs.com/erisen/p/6068265.html