一条SQL执行的内部流程

MySQL架构设计.png

内部各个流程的具体操作

请求的网络连接需由线程处理

数据库服务器的连接池中的某个连接接收到网络请求,比如是一条SQL语句,此时,就需要分配一个线程来进行处理,由线程来监听请求及读取请求数据。

SQL语句的处理交由SQL接口

线程收到SQL语句之后,交由SQL接口对SQL语句进行处理。

查询解析器

负责解析SQL语句,比如该条SQL主要查询的是哪个数据库,哪张数据表,查询的条件是什么,查询的字段信息是什么等等。
也就是将按照规定的SQL语法编写的SQL语句进行解析,让MySQL能够理解这条SQL语句要处理什么。

查询优化器

通过查询优化器,对解析后的SQL语句去选择最优的查询路径。让SQL的执行能够达到最优方式。

执行器

执行器根据优化器生成一套执行计划,然后调用存储引擎的各种接口完成SQL语句的执行计划。

存储引擎

负责真正执行SQL语句,按照一定步骤去查询内存缓存数据,更新磁盘数据,查询磁盘数据等操作。