Mysql执行流程
分类:
文章
•
2025-04-03 21:26:04
Mysql执行流程

- 启动
1.1 客户端通过命令启动Mysql
1.2 调用初始化模块,对系统环境变量、缓存、存储引擎进行初始化
- 连接
2.1 通过网络交互,用户发送一条SQL会传递到连接管理模块,然后转发到连接进/线程模块
2.2 通过用户模块校验用户是否有访问数据库权限
2.3 检验通过后到线程连接池查看是否有空闲连接,没有则创建一个新的连接线程,然
- 处理
3.1 Mysql会把SQL语句拆分称各个命令,通过命令分发器,判断是SELECT且开启了查询缓存,是则查询匹配对应SQL语句的缓存且判断用户是否有访问数据条件
3.2 记录操作日志
3.3 往下执行进入 ‘命令解析器’,经过词法分析,语法分析后生成解析树
3.4 根据操作转到对应的模块处理(预处理阶段),根据SQL选择执行的模块
3.5 模块接收到请求后,通过访问控制模块判断是否有访问数据权限
3.6 有权限’表管理模块’先查看table cache中是否存在,有则直接对应的表和获取锁,负责重新打开表文件
3.7 根据表存储引擎交给对应的存储引擎处理
3.8 返回数据