使用spring jdbc删除批量记录

时间:2012-11-30 10:10:14

标签: java maven spring-jdbc

我有两个表table1和table2,并在一列上使用内连接连接它们。 子表可能有超过5000万个记录器。 使用spring jdbc update()花了30分钟删除了1700万条记录。 是否有一种减少删除时间的优化方法。

1 个答案:

答案 0 :(得分: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