您的位置:首页 > 数据库 > MySQL

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设置该值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: