2024-06-13
MySQL SQL优化,干预表关联顺序
MySQL 5.7
大家看下这个SQL语句,目前a和b两张表,执行计划中a是驱动表,b是被驱动表。
请问能否干预两张表的关联顺序,让b成为驱动表,a做驱动表。
MySQL8.0有相关的hint,但是5.7只能用straight_join。但是用b straight_join a的话,就变成了更新b表了,语义就变了。
感觉这是MySQL的一个缺陷,大家看有没有好的办法干预两表执行计划的关联顺序
update a
inner join b on a.sub_bill_id = b.sub_bill_id
left join c on a.bill_id = c.bill_id
and c.`is_deleted` = 0
set
a.`card_bill_id` = b.card_bill_id,
a.card_sub_bill_id = b.card_sub_bill_id
WHERE
c.id IS NULL
AND a.is_deleted = '0'
AND b.`biz_bill_day` >= '2024-06-01';
我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
