MySQL 查询优化器(四)
2.5 LEFT JOIN查询 该测试主要用于测试LEFT JOIN与JOIN的处理逻辑上的差异,具体查询处理逻辑如下所示: JOIN:prepare阶段 setup_tables():同2.1测试。 setup_fields():同2.1测试。 setup_conds():同2.4测试。 JOIN:optimize阶段 simplify_joins():类似2.4测试。不同之处在于由于LEFT JOIN 使用的数据表不能为 NULL表,这是由是否有where条件过滤决定的。所以该过程会将LEFT JOIN外链接查询转化为多表联合查询操作,从而忽略LEFT JOIN的链接操作。 optimize_cond():同2.1测试。 make_join_statistics():同2.4测试。 choose_plan():同2.1测试。 greedy_search():同2.1测试。 best_extension_by_limited_search():同2.4测试。 get_best_combination():同2.4测试。 JOIN:exec阶段 以下同2.4测试。 Left join 嵌套( join )查询 , 执行SQL: SELECT student.std_id, std_name, std_spec, std_***, std_age, cur_name, cur