在以下 2 个查询案例之间,哪一个更快:
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 在 id 上有一个唯一索引,并且表可能非常大(数百万个条目)。
我的猜测是,尽管第二种情况进行了多次查询,但它仍然更快,因为它可以使用索引来查找条目,而在第一种情况下,它正在对表进行全面扫描(但这只是一个猜测,我实际上有不知道 MySQL 如何处理 CASE 控制流)。
提前感谢您的任何回答!