欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 启动MySQL 1、初始化模块执行存储引擎初期化执行 2、1中执行完成后 —-连接管理模块接手 3、连接管理模块启动处理客户端连接请求的监听程序(tcp/ip 网络监听、unix 的socket) 4、启动完成、准备接
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
启动MySQL
1、初始化模块执行&&存储引擎初期化执行
2、1中执行完成后 —->连接管理模块接手
3、连接管理模块启动处理客户端连接请求的监听程序(tcp/ip 网络监听、unix 的socket)
4、启动完成、准备接收请求
客户端连接
5、监听到客户端的连接请求(运用网络交互模块中相关功能)—->通过Client & Server 交互协议模块协议—-通讯匹配—->
6、连接管理模块—-请求转发—->线程管理模块—-控制转交—->连接线程模块
7、连接线程模块—-调用—->用户模块进行授权检查—-通过—->线程池请求线程
不通过—->返回
请求query
8、开启日志的情况下,日志会同步产生
query类型请求(调用Parser(Query 解析和转发模块))—->(访问控制模块同步执行)
—->Query 解析器
—->(select 类型)调用查询缓存模块—->检查query cache 中是否已经存在—->存在将cache 中的数据返回给连接线程
本文来源gao!%daima.com搞$代*!码$网9
模块
不存在传回query 解析器(Query 优化器模块)
—->(DML 或者DDL)给表变更管理模块
—->表维护模块(更新统计信息、检测、修复和整理类的query)
—->复制模块(复制相关的query)
—->状态收集报告模块(请求状态的query)
—->insert 处理器
—->delete处理器
—->update 处理器
—->create 处理器
—->alter 处理器
command类型请求—->直接执行(不需要调用Parser)
9、以上执行完成—->连接线程模块—->返回执行结果