我正在寻找最好的方法来使用单个查询一次更新多行。 目前我有:在一个查询中更新多行非常慢的性能
UPDATE `profiles` SET `name` = CASE `id` WHEN 1 THEN 'John' WHEN 2 THEN 'Jane' END, `gender` = CASE `id` WHEN 1 THEN 'Male' WHEN 2 THEN 'Female' END WHERE `id`=1 OR `id`=2
但是这大约需要4分钟才能完成(我真正的查询是在10场中的2000万行的数据库),而不是称取约1秒单独的更新查询。
我想解决为什么,究竟发生了什么?我认为通过在WHERE子句中指定id可以加快速度。
只是一个快速拍摄。我会为此准备2个不同的查询。即使您指定了'WHERE'id'= 1或'id'= 2',使用'CASE'方法也可以强制mysql收集所有的ID。如果您为每个案例准备查询并直接使用唯一的'id',则您将有最快的方式来执行此操作。通过使用2个语句,您还有更多清晰的查询,因为这种“CASE”方法会使查询变得奇怪......; ) – Marco