sql UPDATE, вычисление используется несколько раз, может ли оно быть рассчитано только один раз?

0

Использование:

UPDATE `play`
   SET `counter1` = `counter1` + LEAST(`maxchange`, FLOOR(`x` / `y`) ), 
       `counter2` = `counter2` - LEAST(`maxchange`, FLOOR(`x` / `y`) ), 
       `x` = MOD(`x`, `y`) 
 WHERE `x` > `y` 
   AND `maxchange` > 0

Как вы можете видеть, LEAST(maxchange, FLOOR(x / y) ) используется несколько раз, но он всегда должен иметь одинаковое значение. Есть ли способ оптимизировать это, рассчитывать только один раз?

Я кодирую это в PHP, для записи.

Теги:
query-optimization

1 ответ

4
Лучший ответ

Оптимизатор запросов к базе данных должен оптимизировать это.

Если вы хотите быть уверенным, посмотрите пояснить план. Я не думаю, что MySQL поддерживает объяснение обновлений, но использует тот же оптимизатор запросов, что и SELECT, поэтому вам придется перевести его на выбор.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню