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

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

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

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

存储引擎

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

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

执行过程

连接

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

查询缓存

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容