-1

我有两个表 table1 和 table2 并在一个列上使用内部连接将它们连接起来。子表有可能拥有超过 5000 万条记录。使用 spring jdbc update() 删除 1700 万条记录需要 30 分钟。有没有优化的方法来减少删除时间。

4

1 回答 1

1

使用具有一些可应对批量大小的 batchUpdate,例如5000。

编辑:问题可能不在 Spring jdbc 中,而是在您的查询中。

这对你有用吗?

DELETE 
    res
FROM
    RESULT res
INNER JOIN
    POSITION pos
    ON res.POSITION_ID = pos.POSITION_ID
WHERE
    pos.AS_OF_DATE = '2012-11-29 11:11:11'

这会从 RESULT 表中删除条目。简化的 SQL 小提琴演示:http ://www.sqlfiddle.com/#!3/4a71e/15

于 2012-11-30T11:56:12.483 回答