MySQL查询流程

1.先上图

MySQL查询流程_第1张图片

如上图所示,MySQL分成server层和引擎层两层。

server层:连接器、分析器、优化器、执行器等,主要是对客户端的指令进行分析,优化,提取等操作

引擎层:主要是对数据进行存储和提取,目前的存储引擎包括:InnoDB、MyISAM、Memory等,其中InnoDB是目前常用的存储引擎,也是mysql的默认引擎

2.职责

连接器:主要是负责和客户端进行连接,长短连接,登录权限校验

查询缓存:判断之前是否执行过该语句,如果执行过了,则可以直接从缓存中获取返回即可,缓存存储方式为key-value,因此效率非常高

分析器:功能如其名,分析语句是否合法,查询数据字段是否有误等

优化器:对客户端请求的语句进行优化,根据优化后的语句进行判断是否走索引等操作

执行器:执行sql语句,从引擎层获取数据

引擎层:获取数据进行返回

3.执行流程

  • 连接上mysql,校验账号密码,获取权限
  • 查询缓存是否有数据,(8.0版本废弃,不建议使用,更新时会失效)
  • 使用分析器分析语句
  • 使用优化器优化语句以及决定是否有索引等
  • 使用执行器执行语句
  • 执行器调用引擎接口获取数据

你可能感兴趣的:(mysql,数据库,mysql)