关于STRAIGHT_JOIN能否在会话级别设置的问题

【 TiDB 版本】
TiDB 5.4.0

【概述】 场景 + 问题概述
我们有一个三表关联场景,有严重的oom问题,参考:三表关联的情况下绕过tidb_mem_quota_query限制触发oom

【问题】 当前遇到的问题
我们发现STRAIGHT_JOIN可以改善这个情况,也就是类似:

select
/*! STRAIGHT_JOIN */
    `B`.`code` as `c0`,
    `C`.`br_name` as `c1`,
    sum(`A`.`ss_num`) as `m0`,
    sum(`A`.`a_ss_num`) as `m1`,
    sum(`A`.`cb_num`) as `m2`
from
    `test`.`A2` as `A`,
    `test`.`B` as `B`,
    `test`.`C` as `C`
where
    `B`.`code` = '1010'
and
    `A`.`s_id` = `B`.`s_id`
and
    `A`.`b_code` = `C`.`b_code`
group by
    `B`.`code`,
    `C`.`br_name`;

因为类似的sql会有变化, Optimizer Hints和执行计划管理都不太合适,有没有其他手段能够全局或者会话级别设置类似行为,达到关闭优化器优化join顺序,按照from顺序join的目的?

记得放到版主交流会上第七期~

1 个赞

中间折腾过不少东西,我都整理整理

嗯~好~ ~等你

此问题已解决,描述见:https://tidb.io/blog/de9bf174

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。