一条SQL执行的内部流程
内部各个流程的具体操作
请求的网络连接需由线程处理
数据库服务器的连接池中的某个连接接收到网络请求,比如是一条SQL语句,此时,就需要分配一个线程来进行处理,由线程来监听请求及读取请求数据。
SQL语句的处理交由SQL接口
线程收到SQL语句之后,交由SQL接口对SQL语句进行处理。
查询解析器
负责解析SQL语句,比如该条SQL主要查询的是哪个数据库,哪张数据表,查询的条件是什么,查询的字段信息是什么等等。
也就是将按照规定的SQL语法编写的SQL语句进行解析,让MySQL能够理解这条SQL语句要处理什么。
查询优化器
通过查询优化器,对解析后的SQL语句去选择最优的查询路径。让SQL的执行能够达到最优方式。
执行器
执行器根据优化器生成一套执行计划,然后调用存储引擎的各种接口完成SQL语句的执行计划。
存储引擎
负责真正执行SQL语句,按照一定步骤去查询内存缓存数据,更新磁盘数据,查询磁盘数据等操作。