暂无图片
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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
rman 备份归档日志倒 备机
回答 2
open之前你可以先alterdatabaserecovermanagedstandbydatabase;让它自己去拉日志恢复一下然后cancel再open
MySQL数据库2003错误是什么意思?
回答 1
已采纳
https://blog.csdn.net/nayun123/article/details/117365013
mysql 可以实现单向, 多数据库往一个数据库中同步数据的功能吗?
回答 1
mysql8可以实现,值得拥有
oracle 迁移 mysql 都需要注意什么
回答 1
函数、存储过程、还有就是数据类型的转换可以用oracle的工具sqldeveloper,这里面可以直接帮你转换,包括函数,存储过程,数据类型等,比较好用。如果只考虑数据的话,可以通过navicat工具
MySQL GTID号 和 Position号 进行binlog日志,截取恢复,总是不成功是什么原因?
回答 6
报database不存在呀这段binlog内没有创建数据库的语句,往库里跑失败了,可以手动创建试试
怎么计算表在heatwave里面占用的空间?
回答 1
HeatWave是MySQL实时分析计算架构,做OLAP的用的。市面上很少使用。按照个人经验,这个可以通过字段的长度byte计算就可以算出空间。最好可以在官方咨询下。
mysql 5.5支持innodb存储引擎吗?
回答 1
已采纳
支持。MySQL5.5版本以后,默认存储引擎由 MyISAM修改为InnoDB。
MYSQL数据表在什么情况下容易损坏?
回答 4
已采纳
服务器突然断电导致数据文件损坏。强制关机,没有先关闭mysql服务等。
MySQL的information_schema的tables里可以搜到表a在数据库b下,但是实际去数据库b下找不到表a?
回答 2
MySQL的临时表使用showtables也是看不到的,可以showcreatetablet;看看在不在@
Mysql数据库里有多张表需要全量更新(删除所有数据重新写入),要么全部表更新成功要么全部表不更新,总的数据量大概在百万左右
回答 2
已采纳
第二个方案比较好,可以写个通用的工具脚本,防止出错。另外这种全量更新应该频次不频繁,如果比较频繁或者周期比较短,要考虑需求的合理性