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

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

 

 

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

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

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

6ca56e881e2bcfec0e5232c63c1e11f7.png

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

5f0b244dae194faaa5fe34b4a1115f13.png

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

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

 

fd5282291482e609f39881ade15f2b89.jpeg

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

 

5c64f5ffb5adc521814aa3dcc15ba1e2.jpeg

 

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

 

839218715d1ebe56d676bb9d6e8da665.jpeg

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

 

cb559c94f9be2c973b141c16151563a7.jpeg

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

 

05745d013bc1d817072e61e03ece56f9.jpeg

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

 

f52c24ee8058d1bbea1d276164068d65.jpeg

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

 

fe48b6e5b96ecd352fa118b403d4ce3a.jpeg

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

 

c848b72836ba815ac6020938fc711291.jpeg

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

 

ed01835877954302befa61fef187f6e8.jpeg

 

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

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值