【Spring Data JPA】deleteAllとdeleteAllInBatchの違い

当ページのリンクには広告が含まれています。
目次

概要

Spring JPA Dataにおける、deleteAllとdeleteAllInBatchの挙動の違いについてです。
結論から言うと、実行されるSQLが違います。

SQLの違い

【前提】
3件のデータがあるとします。

deleteAll

削除対象をSELECTで取得してから、1行ずつ削除しています。
以下が実行時のSQLです。

deleteAllInBatch

単純に全件削除します。
以下が実行時のSQLです。

実行されるSQLからわかること

全件削除が目的であれば、deleteAllInBatchを使うのが合理的です。
deleteAllは1行ずつ削除されるのでパフォーマンスが悪いため、おすすめできません。

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次