UPDATE 查询比较棘手,因为你不能简单地写进去多个值。不同情况下,我用不同的方法解决。如果你确信将要update的记录是存在的,那么可以使个花招,用INSERT ... ON DUPLICATE KEY UPDATE代替(没想通的在下面留言)。但是如果你并非100%确定这条记录存在,那么最好建一个临时表,插进去全部试图更新的值,然后执行一条多表update查询。
如果跑的是MariaDB,或是Percona Server,你也可以试下在HandlerSocket接口上做update。可以大幅消除由于执行多条查询带来的开销。甚至,对于每个update执行一条查询的情况一样有效。
跟往常一样,不同方法的性能差异在于数据和要做的事情。一定要在数据、服务器和应用程序上进行测试。
原文 http://www.stevemeyers.net/2013/04/query-in-loop.html,有删减
原文 http://www.stevemeyers.net/2013/04/query-in-loop.html,有删减