mysql如何处理一个客户端的连接
2017-08-21 10:33
471 查看
连接管理器线程处理来自网络上的请求。在所有的平台上,一个管理线程处理所有的tcp/ip请求,在unix平台上,也处理socket连接请求。管理线程将每个客户端的请求与一个专用的线程关联起来,来处理认证及这个连接的后续处理。管理进程先去线程缓存中看是否有缓存的线程可以使用,避免创建新的线程。当一个连接结束后,如果线程缓存还没有满,线程会被返回到线程缓存中。在这种模型中,存在于客户端相同数量的线程,但是当处理大量的请求连接时候就不怎么好了。需要很多的内核及服务器的资源,可能会消耗大量的内存。mysql的企业版本包含了一个线程池的插件来降低开销,这个主要是面向大量的客户端连接的。线程缓存的大小由thread_cache_size决定,默认情况下是0,没有开启缓存,为了监控线程缓存,可以监控thread_cached和thread_created状态变量。当thread stack太小的时候,这个会限制mysql能处理的sql语句的复杂性,存储过程的递归深度,还有其他的消耗内存的一些行为,可以通过–thread_stack设置该值。
相关文章推荐
- 如何处理socket连接后服务器端或客户端的断开
- 如何设置客户端每次发送请求的时候,保证都是新建一个http连接,而不是和上次的连接用同一个?
- 如何解决客户端与服务器端的连接(mysql) :xxx.xxx.xxx.xxx is not allowed to connect to this mysql serv
- Redis 如何处理客户端连接
- Redis 如何处理客户端连接
- Redis如何处理客户端连接
- mysql一个连接的处理效率
- 当一个进程打开的文件描述符达到了上限,这时有新连接到来的sockt 如何处理?
- 关于 mysql 2003 客户端连接报错的处理方法
- mysql客户端连接失败处理方法(can't connect to MySQL server on localhost'(10060))
- Redis如何处理客户端连接
- 如何用.net Remoting实现一个客户端需要连接多个服务器端?
- Redis如何处理客户端连接
- Redis 如何处理客户端连接
- Redis如何处理客户端连接
- redis 如何处理客户端连接
- Socket 编程经验谈---如何处理socket连接后服务器端或客户端的断开
- Socket 编程经验谈---如何处理socket连接后服务器端或客户端的断开
- MySQL一个线程处理一个连接源码
- mysql中如何更新一个字段的值为它本身的值连接上一个字符串