开发者社区> 问答> 正文

通过FindBestQueryPlan函数来实现新优化器的入口。的具体逻辑是?

通过FindBestQueryPlan函数来实现新优化器的入口。的具体逻辑是?

展开
收起
我也不知道取啥名字 2022-05-08 19:41:32 284 0
来自:阿里技术
1 条回答
写回答
取消 提交回答
  • 1、先判断是否属于新优化器可以支持的Query语法(CheckSupportedQuery),不支持的直接返回错误ER_HYPERGRAPH_NOT_SUPPORTED_YET。 2、转化top_join_list变成JoinHypergraph结构。 3、通过EnumerateAllConnectedPartitions实现论文中的DPhyp算法。 4、CostingReceiver类包含了过去JOIN planning的主要逻辑,包括根据cost选择相应的访问路径,根据DPhyp生成的子计划进行评估,保留cost最小的子计划。 5、得到root_path后,接下来处理group/agg/having/sort/limit。

    2022-05-08 23:31:51
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
阿里技术专家一挃:MongoDB 优化器 & 执行器介绍 立即下载
动态、高效,蚂蚁动态卡片的内核逻辑 立即下载
fibjs 模块重构从回调到协程--陈垒 立即下载