Mysql和网络连接相关的参数介绍
max_conecctions:整个mysql允许的最大连接数
这个参数主要影响的是整个mysql应用的并发处理能力。
当系统中实际需要的连接量大于max_conecctions的情况下,由于mysql的设置限制,那么应用中必然会产生连接请求的等待。
一般来说,只要mysql主机性能允许,应该将该参数设置的尽量大一点,一般500-800左右是一个比较合适的参考值。
==========================================================================================
max_user_connections:每个用户允许的最大连接数
该参数针对单个用户的连接限制。
在一般情况下我们很少使用这个限制,只有在一些专门提供mysql数据存储服务或者提供虚拟主机的应用中可能用到。
==========================================================================================
net_buffer_length:网络包传输中,传输消息之前的net buffer初始化大小
该参数主要可能影响的是网络传输的效率。
由于该参数所设置的只是消息缓冲区的初始化大小,所以造成的影响主要是当我们的每次消息都很大的时候,mysql总是需要多次申请扩展该缓冲区大小。
系统默认大小为16KB,一般来说可以满足大多数场景。当然如果我们的查询都是非常小,每次网络传输量都很小,而且系统内存又比较紧缺的情况下,也可以适当将该值改为8KB。
==========================================================================================
max_allowed_packet:网络传输中,一次消息传输量的最大值
该参数与net_buffer_length相对应,只不过是net buffer的最大值。
当我们的消息传输量大于net_buffer_length的设置时,mysql会自动增大net buffer的大小,直到缓冲区大小达到max_allowed_packet所设置的值。
系统默认值为1MB,最大值是1GB,必须设定为1024的倍数,单位为字节。
==========================================================================================
back_log:在mysql的连接请求等待队列中允许存放的最大连接数
连接请求队列,实际上是指当某一时刻客户端的连接请求数量过大的时候,mysql主线程没办法及时给每一个新的连接请求分配(或者创建)连接线程的时候,还没有分配到连接线程的所有请求都将存放到一个等待队列中,这个对了就是mysql的连接请求队列。
当我们的系统存在瞬间的大量连接请求时,应该注意back_log参数的设置。
系统默认值是50,最大可以设置为65535。
同时还需要注意OS级别的网络监听队列的限制。因为如果OS的网络监听设置小于mysql的back_log设置的时候,我们加大back_log是没有意义的。