【十二】MySQL数据库SQL语句的执行过程

MySQL数据库SQL语句的执行过程

简介:使用MySQL这么久了经常会思考一个问题:MySQL数据库sql语句是怎么执行的,比如:

SELECT * FROM A WHERE B=1 AND C=2 GROUP BY D ORDER BY D在MySQL中是如何执行的?

如下图是MySQL的逻辑架构图:

【十二】MySQL数据库SQL语句的执行过程_第1张图片

        通过逻辑架构图我们可以了解MySQL整体的设计和各模块功能作用。下图是从《高性能MySQL》一书中摘下来的,sql执行过程图:

【十二】MySQL数据库SQL语句的执行过程_第2张图片

         由上面这张图我们可以清楚的了解到sql语句整体执行的情况,下文将针对执行过程每个环节进行详细的介绍,希望大家能够彻底理解情况sql语句执行过程。

MySQL数据库SQL语句的执行过程可以分为以下几个步骤:

【十二】MySQL数据库SQL语句的执行过程_第3张图片

1、词法分析:MySQL首先对SQL语句进行词法分析,将SQL语句分解成一个个token(关键字、标识符、运算符等),同时对token进行分类和解析,生成相应的数据结构。

【十二】MySQL数据库SQL语句的执行过程_第4张图片

2、语法分析:MySQL对SQL语句进行语法分析,根据SQL语法规则检查语句的正确性,并生成语法树。

【十二】MySQL数据库SQL语句的执行过程_第5张图片

3、语义分析:MySQL对SQL语句进行语义分析,对语法树进行遍历,确定语句中表和列的信息,包括表名、列名、列类型等,同时检查语句的语义正确性。

【十二】MySQL数据库SQL语句的执行过程_第6张图片

4、优化器处理:MySQL通过优化器对SQL语句进行处理和优化,包括执行计划的生成、索引的选择、连接方式的选择等。

【十二】MySQL数据库SQL语句的执行过程_第7张图片

5、执行计划生成:MySQL通过执行计划生成器生成SQL语句的执行计划,即具体的执行方式,包括数据的访问方式、索引的使用方式、连接方式、排序方式等。

【十二】MySQL数据库SQL语句的执行过程_第8张图片

6、数据库引擎处理:MySQL将执行计划发送给相应的数据库引擎进行处理,执行计划可能被翻译成一组底层操作指令,如数据扫描、索引查找、排序、分组等。

【十二】MySQL数据库SQL语句的执行过程_第9张图片

7、数据返回:MySQL将执行结果返回给客户端,可以是查询结果集或者操作结果。

【十二】MySQL数据库SQL语句的执行过程_第10张图片

需要注意的是,不同类型的SQL语句(如查询语句、更新语句、插入语句等)在执行过程中会有所不同,但是整个SQL语句的执行过程大体相同。另外,MySQL还有一些优化技术,如查询缓存、预编译等,可以进一步提高SQL语句的执行效率。

【十二】MySQL数据库SQL语句的执行过程_第11张图片

 总结:到此应该是把MySQL数据库SQL语句的执行过程讲述清楚了,本文内容主要也是参考相关博客和书籍整理编写的,大家如果理解上有疑问可以留言交流。

你可能感兴趣的:(mysql系列,mysql,数据库)