В промежутке между двумя приведенными ниже запросами, который быстрее:
update t set v = case when id = 1000000 then 100 when id = 10000000 then 500 else v end
или
update t set v = 100 where id = 1000000;
update t set v = 500 where id = 10000000;
таблица t имеет уникальный индекс по идентификатору, и таблица может быть довольнобольшой (миллионы записей).
Я предполагаю, что хотя во втором случае выполняется несколько запросов, он все же быстрее, поскольку он может использовать индекс для поиска записей, тогда как в первом случае выполняется полное сканированиетаблицу (но это только предположение, я на самом деле не имею ни малейшего понятия о том, как MySQL справляется с потоком управления CASE).
Заранее спасибо за любые ответы!