mysql 多台 协同工作_mysql中各个模块如何协同工作

mysql各个模块如何协同工作的,我们通过启动mysql、客户端连接、请求query,得到返回结果,最后退出。这个过程来看一下。

执行启动mysql命令后,mysql的初始化模块从配置文件中读取系统参数与命令行参数,并按参数来初始化整个系统。同时各个存储引擎也被启动,并进行各自的初始化工作。

当整个系统初始化结束后,连接管理模块接手,连接管理模块启动处理客户端连接请求的监听程序,包括tcp/ip网络监听,还有unix的socket。此时mysql server基本启动完成,准备好接受客户端请求。

当连接管理模块监听到客户端的连接请求,双方通过client&server交互协议模块定义的协议“寒暄”几句后,连接管理模块将连接请求转给线程管理模块,去请求一个连接线程。

线程管理模块马上将控制交给连接线程模块,告诉连接线程模块:我这有连接请求,需要建立连接。连接线程模块接到连接请求后,首先检查当前线程连接池中是否有cache有空闲连接线程,如果有,取出一个和客户端请求连接,如果没有,则建立一个连接线程与客户端连接。当然连接线程模块并不是收到连接请求后马上取出连接线程与客户端连接,而是先调用用户模块进行授权检查,只有客户端请求通过了授权检查后,它才会将客户端请求与线程连接上。

在mysql中,客户端请求分为两种:一种是query,需要调用parser和转发模块才能执行的请求,一种是command,不需要调用parser就可以直接执行的请求。(如果在配置文件中打开了full query logging功能,那么query解析与转发模块会调用日志记录模块将请求记入日志,不管

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值