on A.b_id = B.id
SET B ...
WHERE
and b.col5 = 1234
and b.col6 = 1
and b.col7 = 'val7';
Я не знаю, начнется ли это с A
или B
. Итак, позвольте мне порекомендовать индексы для каждого:
B: INDEX(col5, col6, col7, id)
A: INDEX(b_id)
A: INDEX(col4, b_id)
Они также помогут подходу подзапроса Ronn ie.
Если у вас достаточно новая версия, укажите EXPLAIN UPDATE ...
как до, так и после добавления этих индексов. (Старые версии MySQL не имеют этой команды.)