2016-09-03 9 views
0

OK、それでは、私は、次のタイプのオブジェクトが含まれlist持っているとしましょう:すでに、(同じPKを持っている)、データベースに格納され やデータベースと同じですされている新しい/更新されたオブジェクトの混合リスト:効率的にDBに格納する方法は?

  1. オブジェクト、はすでに(同じPKを持っている)データベースに格納されており、が保存されたものに関してはを変更するので、彼らは

  2. を更新する必要がある

  3. オブジェクトを変更していませんオブジェクトの

  4. まだデータベースに存在しないオブジェクト、および保存されようとしている

このようなリストは、WebサービスへJSONとして送信され、およびWebサービスは、今持っていますデータベースと通信し、どのオブジェクトを保存、更新、または無視するかを決定します。

私の質問はこれを効果的に行う方法です。

1つのアイデアは、リストを反復することです。すべてのオブジェクトのPKに対して、データベースにクエリを行い、データベース内のオブジェクトが存在しないか、同じか、または変更されているかどうかを確認します。その情報に基づいて行動を選択します。 このアプローチでは、いくつかのオブジェクトを保存するだけで、データベースへのクエリが非常に多くなります。 100のうち1つだけが実際に保存されるべき場合はどうでしょうか?それはとても効果がありません。

これを実行する方法はありますか?

答えて

0

あなたはDB(MYSQL)にリスト全体を送信し、アップサート操作を行うことができます。

INSERT ... ON DUPLICATE KEY UPDATE 
関連する問題