启动MySQL
1、初始化模块运行&&存储引擎初始化运行
2、1中运行完毕后 ---->连接管理模块接手
3、连接管理模块启动处理client连接请求的监听程序(tcp/ip 网络监听、unix 的socket)
4、启动完毕、准备接收请求
client连接
5、监听到client的连接请求(运用网络交互模块中相关功能)---->通过Client & Server 交互协议模块协议----通讯匹配---->
6、连接管理模块----请求转发---->线程管理模块----控制转交---->连接线程模块
7、连接线程模块----调用---->用户模块进行授权检查----通过---->线程池请求线程
不通过---->返回
请求query
8、开启日志的情况下,日志会同步产生
query类型请求(调用Parser(Query 解析和转发模块))---->(訪问控制模块同步运行)
---->Query 解析器
---->(select 类型)调用查询缓存模块
---->检查query cache 中是否已经存在
---->存在将cache 中的数据返回给连接线程模块
---->不存在传回query 解析器(Query 优化器模块)
query 解析器
---->表变更管理模块(DML 或者DDL)
---->insert 处理器
---->delete处理器
----->update 处理器
----->create 处理器
----->alter 处理器
---->表维护模块(更新统计信息、检測、修复和整理类的query)
---->复制模块(复制相关的query)
---->状态收集报告模块(请求状态的query)
command类型请求---->直接运行(不须要调用Parser)
9、以上运行完毕---->连接线程模块---->返回运行结果
抱怨下!
CSDN排版稀烂。咋排都看不到自己想要的效果。
CSDN能不能不要去掉作者使用的 Tab 啊,害人都要用N多空格取代并且空格的显示大小跟排版大小根本不一致!
大家理解不清楚的话,看附件的图吧。
附上图片: