MySQL:一条查询语句是怎么执行的?

本章内容主要讲解MySQL各个功能模块怎么执行。

首先,MySQL中有连接器、分析器、优化器、执行器。

  • 连接器:用户登入MySQL,同时验证该用户的权限信息。
  • 分析器:对用户的操作命令进行判断,判断是否有关键字错误或者是语法错误。
  • 优化器:优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的情况下,决定各个表的连接顺序。
  • 执行器:执行你的操作命令,操作引擎,返回结果。

存储引擎

InnoDB, MyISAM, Memory, MySQL默认为InnoDB.

MySQL各个功能模块的执行过程

MySQL:一条查询语句是怎么执行的?_第1张图片
执行过程

连接

  • 长连接
    连接成功后,如果客户端持续有请求,则一直使用同一个连接。
  • 短连接
    每次执行完很少的几次查询就断开连接。

查询缓存

之前执行过sql语句,都会讲命令和结果存储到查询缓存中。

不过查询缓存往往弊大于利,只要有表更新过,该表相关的查询缓存将全部失效。

8.0版本后没有查询缓存了。

你可能感兴趣的:(MySQL:一条查询语句是怎么执行的?)