Если взять запрос вида:
| Код | UPDATE t1 INNER JOIN t2 on t2.sub_id=t1.id INNER JOIN t3 on t3.sub_id=t1.id SET t1.data=111 WHERE t1.name=222 |
В таблице t1 десять полей с name=222. Если заменить UPDATE на аналогичный SELECT, будет нечто вроде:
| Код | SELECT * FROM t1 INNER JOIN t2 on t2.sub_id=t1.id INNER JOIN t3 on t3.sub_id=t1.id
WHERE t1.name=222 |
Получим выборку на несколько тысяч строк.
Вопрос: такой UPDATE будет аналогичен нескольким тысячам UPDATE-ов, т.е. как все SELECT-ится, так все будет и UPDATE-тится и надо думать над каким-нибудь GROUP BY, или UPDATE в данном случае будет выполняться по оптимальному сценарию, и одни и те же данные не будут по кругу гоняться? |