2017-11-01 5 views
0

サービスからデータを取得するためにREST APIを使用しています。このデータを変換してデータベースに格納します。 15分間隔でこれを行う必要がありますし、このデータベースに最新の情報があることを確認してください。 私はJavaプログラムでこれをやっています。私はすべてのデータを照会した後、それは 1. SELECT文を実行すると、変換されたデータ対比較し、更新(変更されたものに関連付けられたすべてのレコードを削除し、新しいINSERT)より効率的なJavaとDELETEとINSERTでのSELECTと比較

OR

を行うには、より良いでしょう場合、私は疑問に思って
  1. 毎回ALLとINSERT ALLを削除してください。私は、データがあまり変更されることを期待していないので、我々は更新の多くを比較するが、潜在的にされていないため、1がはるかに少ない取引となる可能性を持ってい

オプションは、すべてのレコードにSELECTを保証します。しかし、それはテスト。私は短い答えは、それが依存」で春ブーツ、JPA層を使用してこれを行うことを計画し、おそらく

+0

また、矛盾を入れて挿入すると、解決策が得られます。ベンチマークは知りません –

+0

期待されるデータ量は? –

+0

[クロスポストしないでください](http://meta.stackexchange.com/q/64068/157328) –

答えて

1

をpostgresにしています変更

を検出するために、すべてのレコードで比較を行うことの欠点があり、ためを見ますあなたのユースケース。 "

長い答え:これは事前最適化のように感じます。また、事前最適化の一般的な対応は「しない」です。特にこのようなDB領域では、ある状況では最高のものが別の状況ではひどいことがあります。

  1. まず、それは
  2. 作業を取得:スキーマ、インデックス、HDDのバック速度、同時実行、データの量、ネットワーク速度、遅延、およびように(へと排他的ではない)を含むいくつかの要因がありますが、 →は4適宜
を通じて任意の明白なまたは必要に応じて変更
  • 繰り返し1を作成し、そのメトリック
  • に対するメトリック
  • 測定を得る間違って何
  • を特定

    私があなたに尋ねる最初の質問は、「は何を意味するのですか?の意味は?これを定義すると、前方のパスがより明確になる可能性が高くなります。

  • 関連する問題