プログラミング Java

【Spring Data JPA】deleteAllとdeleteAllInBatchの違い

投稿日:

概要

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

SQLの違い

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

deleteAll

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

deleteAllInBatch

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

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

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

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【JdbcTemplate】Queryの書き方(更新系)

  前提 以下のテーブル(users)を持ち、格納するのはUserクラスという想定で説明していきます。 usersテーブル

【JPA】リレーションの無いエンティティをJPQLで結合する

概要 @ManyToOneや@OneToManyといったリレーションをエンティティに設定していないまたは設定できない状況にあるが、結合した結果を取得したいという状況を想定しています。 方法としては「J …

エンジニア未経験者の転職が難しくなったので解決策を提案してみる

現状 コロナ以降、未経験者のエンジニア採用が少しずつなくなっていきました。 それまではポートフォリオを作ったり、ある程度のポテンシャルがあると判断されれば 採用されるということがあったのですが、それが …

プログラミングスキルを向上させる3ステップ

プログラミングスキルを向上させるための3ステップです。 私自身が実践していることであり、向上を実感している方法です。 写経 本をベースに写経します。 写し書きをして動いたらOKではなく、以下のような問 …

【Java】TDDして汎用的な部品を作成する(日付期間オブジェクト)

目的 TDDブートキャンプというセミナーに参加して面白かったので、 自分で何かやってみようと思った。 仕様 日付期間を保持するオブジェクトである。 開始日と終了日を持つ。 開始日と終了日を持つことをど …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。