MySql中Sql的执行过程(MySql中执行Sql的流程)?

2023-03-16 17:43:16 5

重新编写并排版分段:

当查询缓存未命中时,SQL请求将进入解析器,它用于确定SQL语句的执行目的。其执行过程可以大致分为两个步骤:

第一步是语法分析,解析SQL语句并判断其是否符合MySQL语法规则。在解析过程中,解析器将SQL语句生成的四个单词分析出来,并识别出其中的关键字,例如"select"和"from"。按照MySQL的语法规则,"select"和"from"之间应该对应"fields"字段和"userinfo"表。最后生成语法树,如图5所示。

第二步是优化器的作用,对生成的语法树进行优化,生成最佳执行方案。优化器包含逻辑变换和代价优化两部分内容(黄色部分)。逻辑变换会在关系代数基础上进行变换,其目的是为了化简SQL,保证SQL变换前后的结果一致。代价优化则是为了提高SQL的执行效率,减少代价。最终优化后,生成的SQL执行计划交给执行器在存储引擎上执行,如图6所示。

本节的重点在于优化器中的逻辑变换和代价优化。逻辑变换包括否定消除、等值传递、常量表达式计算和常量表达式化简等,其目的是为了化简SQL。具体步骤如图7所示:

1. 针对原有SQL语句进行否定消除、条件转换和符号变换。 2. 进行等值传递,将相关值分别替换到SQL中。 3. 进行常量表达式计算。 4. 最终进行常量表达式化简,简化SQL语句。

通过上述步骤,优化器能够将SQL语句化简,并生成最佳执行方案,从而提高SQL的执行效率。

爱网站

Linux、centOS、Ubuntu、Windows操作系统下的ECS云服务器、vps虚拟空间、建站主机到期停止异常等状态监测,宝塔面板Bt、小皮面板PHPStudy、IIS、Apache、Nginx、XAMPP、wamp建站环境意外故障监测,php+MySql、asp、java、html等建站程序运行故障监测,域名状态、SSL证书状态监测,网站301、302、404、500错误代码及网站无法访问通知提醒,全国多节点测试网站速度及网络攻击!

网站服务

扫一扫,关注我们

桂ICP备2022009721号-1