Предположим, у вас есть TestTable со столбцами: field1, field2,... fieldn.
Какой запрос выполняется быстрее:
UPDATE TestTable set field1 = n1;
UPDATE TestTable set field2 = n2;
...
UPDATE TestTable set fieldn = nn;
или же
UPDATE TestTable set
field1 = n1,
field2 = n2,
....
fieldn = nn;
Хороший вопрос. Попробуйте думать об этом так.
Каждая операция установки занимает незначительное время
за каждое ОБНОВЛЕНИЕ = n проверок
ОБНОВЛЕНИЕ n1 = n
ОБНОВЛЕНИЕ n2 = n
ОБНОВЛЕНИЕ n3 = n
Таким образом, по сути, для n количества обновлений вы проверяете n строк n раз, поэтому вы просматриваете n ^ 2 полных проверок. Однако, если вы используете функцию SINGLE UPDATE, вы проверяете только n строк ОДИН раз.
Поэтому второй вариант значительно лучше.
SQL основан на множестве. Каждый раз, когда вы можете работать с набором данных в одной операции, вам обычно лучше.
WHERE
вся таблица должна быть отсканирована. В первой версии это нужно сделать n раз. Во втором один раз. Так что второй должен работать лучше.