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