【IT专家】MySQL查询优化器源码分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
MySQL 查询优化器源码分析
2017/03/13 0 函数功能: 指定的表的次序(循环条件中表示不同表位置的值递增)求解单表 s 与局部最优 查询树的最优连接。 代码分析: static void optimize_straight_join(JOIN *join,table_map join_tables) { …… for(JOIN_TAB **pos= join- best_ref + idx ; (s= *pos) ; pos++)//遍历 remaining_tables 中的每个表 s { /*Find the best access method from ‘s’ to the current partial plan */ best_access_path(join, s, join- thd, join_tables, idx, record_count, read_time); //通过调用 best_access_path 函数得到局部查询计划的最优花费保存到“joinpositions[idx].records_read”和“join- positions[idx].read_time”,然后计算当前最优花费 (best_access_path 函数体中的最后,为这 2 个变量赋值) /* compute the cost of the new plan extended with ‘s’ */ record_count*= join- positions[idx].records_read; read_time+=join- positions[idx].read_time; join_tables = ~(s- table- map); ++idx; //保障下次调用 best_access_path 函数时,从本次循环使用的表 s 的下一个 表的位置正确 } read_time+= record_count / (double) TIME_FOR_COMPARE;
……
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
join- best_read= read_time; //得到本次连接的最优花费
}
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
源自文库
相关文档
最新文档