mysql数据库查询图解_MySQL 数据库SQL查询语句执行过程介绍 | IT工程师的生活足迹...

MySQL 数据库服务在接受到查询请求后,大体的执行过程:

b0740ed2429d42d21e50bd06d0095472.png

一、查询过程说明1

1、接受查询请求

2、Mysql服务首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。

3、如果没有命中缓存;MYSQL会通过解析器进行SQL语法解析并生成相应的解析树;(逻辑查询)

4、解析树经过预处理器生成新的解析树,再经过查询优化器生成对应的执行计划;(物理查询)

5、MySQL根据执行计划,调用存储引擎的API来执行查询

6、将结果返回给客户端,同时缓存查询结果(具体缓存与否,根据query_cache配置)

二、查询过程说明2

1、连接发往连接管理器;

2、连接管理器调用线程管理器,复制生成一个连接线程,响应用户请求;

3、由用户模块完成用户的授权和检查;(除非断开,否则回话会处于循环状态)

4、如果用户发送命令,则会到达命令派发器;

5、如果是查询请求,则发往查询请求,看缓存是否能命中,如果能命中,则将结果返回,并且记录日志;

6、如果缓存没有命中,则语句会发往分析器,由分析器完成语法分析、词法分析等,然后可以转换为存储引擎可以执行的语句;

7、优化器根据状态报告模块的报告,生成最有的访问路径,本次优化的结果也会报告给状态报告模块记录结果;

8、如果是修改语句,则由表修改模块执行;

9、如果是表维护语句,则由表维护模块运行;

10、复制模块实现跨实例的复制;

11、访问控制模块检查用户是否有访问权限;

12、如有权限,则交给表管理器,然后把用户请求转换为存储引擎可以执行的语句;

13、由特定的存储引擎加载文件和执行;(所以存储引擎是表级别的)

28d6f87a3f32a8f8392a74f2e282429c.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值