select操作的函数调用

本文详细介绍了SQL执行过程中的关键步骤及函数调用流程,包括不同类型的SELECT语句处理方式,如带有UNION操作的处理和单独的SELECT语句处理。此外还深入探讨了JOIN操作的优化方法,例如如何将外连接转化为内连接以及条件语句的优化。

记录一下在select过程中调用到的一系列函数,以后重点看,尤其是优化部分!!!

在将SQL语句解析后,以连接的顺序形成一个查询基表的队列,。

对select语句的处理有两种方式:

一种是带union的操作

一种是单独的select语句

所有select操作的入口函数为:

handle_select

——mysql_union() //含有union操作

SELECT_LEX_UNIT:prepare()

SELECT_LEX_UNIT:exec()

SELECT_LEX_UNIT:cleanup()

——mysql_select() //仅包含select操作

JOIN:Prepare() //准备

JOIN:optimize() //优化

JOIN:exec() //执行

JOIN:cleanup() //清理

优化:

1.simplify_joins():外连接转化为内连接,将节点on_expr合并到where中

2.optimize_cond():优化条件语句

3.make_join_statistics:收集统计信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值