7

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

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

执行所有这些查询需要很长时间。有没有办法提高性能?

4

1 回答 1

26

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

就像是

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;    
于 2013-05-23T09:12:43.960 回答