2つのテーブルtable1とtable2があり、1つの列で内部結合を使用してそれらを結合しています。子テーブルには5000万を超えるレコードが含まれる可能性があります。spring jdbc update()を使用して1700万レコードを削除するのに30分かかりました。削除時間を短縮するための最適化された方法はありますか?
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 に答える