MySQL语句执行过程

以前对于mysql只是停留在会写sql语句阶段,最近工作需要,开始深入学习,记录一下,加深记忆。

 

先来一张图:

 

 

1. 连接器

    连接器主要负责验证权限,若密码未验证成功,返回“Access denied  for user”。 若验证通过,则到权限表查询权限,后面的操作都是依赖查询出来的权限,故连接成功以后,改变权限,需重新连接才会生效。

    连接完成后,若没有后续操作,连接处于空闲状态(sleep),如果超过设置时间还未操作,连接器自动断开(默认8小时,通过设置wait_timeout),如断开后,客户端在请求,则会报出Lost connection to MySQL server during query

    ps:mysql建立连接是一个耗时的过程,所以建议用长连接,但是要注意 定时要清理一次,使用mysql_reset_connection初始化连接资源,释放内存(因为临时内存是在连接对象上)

2. 分析器

   词法分析:分析关键词

  语法分析:看是否有sql语法错误

3. 优化器

   mysql会判断走什么索引,如何选择表的先后

4.执行器

   这里会再次判断操作权限,因为在连接器的时候,有些权限是判断不了

 

 

 先这样,不会排版。

posted @ 2020-04-14 22:51  陨星  阅读(126)  评论(0)    收藏  举报