Mysql批量更新

时间:2013-05-23 08:38:16

标签: mysql performance bulkinsert

我必须通过sql(No Hibernate / JDBC)对表执行~6k更新查询。查询类似于

更新一组some_id ='value1',其中id ='value2'

执行所有这些查询需要很长时间。有没有办法改善表现?

1 个答案:

答案 0 :(得分:26)

创建临时表(仅包含value1和value2值)并批量填充它(即,您可以使用单个insert语句执行此操作)。然后使用现有表和临时表之间的连接进行更新。

这样的东西
INSERT INTO SomeTempTable(id, some_id)
VALUES (1,2), (3,4), (5,6), .......


UPDATE A INNER JOIN SomeTempTable ON A.id = SomeTempTable.id SET A.some_id = SomeTempTable.some_id;