暂无图片
MySQL在查询处理的哪个阶段创建查询的执行计划?D A.Executing(执行) B.Parsingo(语法解析) C.Authorizingo(批准) D.Optimizing(优化)
我来答
分享
暂无图片 匿名用户
MySQL在查询处理的哪个阶段创建查询的执行计划?D A.Executing(执行) B.Parsingo(语法解析) C.Authorizingo(批准) D.Optimizing(优化)

MySQL在查询处理的哪个阶段创建查询的执行计划?D

A.Executing(执行)

B.Parsingo(语法解析)

C.Authorizingo(批准)

D.Optimizing(优化)

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
落枫0907

MySQL在查询处理的哪个阶段创建查询的执行计划?D

A.Executing(执行)

MySQL查询执行路径

 1. 客户端发送一条查询给服务器; 

2. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段; 

3. 服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划; 

4. MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询;

5. 将结果返回给客户端。 在Optimizing阶段会创建查询的执行计划

1.语法分析阶段:将SQL查询语句经词法和语法分析后变换为一颗查询树st_select_lex传给优化器,并对SQL表达的语义进行检查。

2.生成逻辑查询执行计划阶段:优化器在查询树中遍历每个关系,确定关系是否是常量表,为每个关系查找可用的索引,运用关系
代数原理和启发式规则进行逻辑上的查询优化(如消除子查询,消除外连接等)。

3.生成物理查询执行计划阶段:优化器对每个连接的表进行排序,然后再求解多表连接最优路径,对于每个关系尽量利用索引计算其
代价,找出代价最小的路径后保存到JOIN类的best_positions。

4.执行查询执行计划阶段:把查询执行计划传到执行器进行执行。

暂无图片 评论
暂无图片 有用 2
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏