【 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的目的?