Какой вариант для повышения производительности будет лучше для больших наборов данных, подлежащих обновлению?
Использование оператора CASE или отдельных запросов на обновление?
Пример CASE:
UPDATE tbl_name SET field_name =
CASE
WHEN condition_1 THEN 'Blah'
WHEN condition_2 THEN 'Foo'
WHEN condition_x THEN 123
ELSE 'bar'
END AS value
Пример отдельного запроса:
UPDATE tbl_name SET field_name = 'Blah' WHERE field_name = condition_1
UPDATE tbl_name SET field_name = 'Foo' WHERE field_name = condition_2
UPDATE tbl_name SET field_name = 123 WHERE field_name = condition_x
UPDATE tbl_name SET field_name = 'bar' WHERE field_name = condition_y
ПРИМЕЧАНИЕ. Около 300,000 записей будут обновлены, а оператор CASE будет иметь около 10 000 условий WHEN. При использовании отдельных запросов также около 10 000