我必须通过sql(No Hibernate / JDBC)对表执行~6k更新查询。查询类似于
更新一组some_id ='value1',其中id ='value2'
执行所有这些查询需要很长时间。有没有办法改善表现?
答案 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;