Mysql批量更新

问题描述 投票:7回答:1

我必须通过sql在表上执行〜6k更新查询(无Hibernate / JDBC)。查询类似于

UPDATE A 
SET 
    some_id = 'value1'
WHERE
    id = 'value2';

执行所有这些查询花费的时间太长。有没有办法提高性能?

mysql performance bulkinsert
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.