0

私は、Facebook からユーザーの友達に関するデータを取得するプロジェクトに取り組んでいます。フレンドの詳細は、データベースに保存されているものと同じである場合もあれば、異なる場合もあります。

replace コマンドを使用して、Facebook から取得した情報とデータベースが一致していることを確認できます。

私の質問は、この手法がどれほど効率的かということです。つまり、次の 2 つの手法を使用できます。

  • 1 つは、replace コマンドを使用して完全なレコードをやみくもに置き換えることです。
  • 2つ目は、最初にdbに保存されたレコードとの違いがないかをチェックし、変更されたフィールドのみを更新することです

これらのアプローチのうち、より効率的なのはどれですか?

4

1 に答える 1

3

いくつかの値を比較するだけでも、いくつかの sqlite コマンドを連続してキューに入れる方が、間に何かを行うよりもはるかに効率的であることがわかりました。

更新コマンドを実行することを強くお勧めします。SQLite は高速です。

私の観察では、SQLite は常に私よりもはるかに高速です。したがって、面倒な作業は任せて、データをダンプして、更新を整理してください。

たとえば、約 7,000 件のレコードを検索していました。レコードを配列に取り出し、1 つのフィールドを簡単にチェックして、それを 2 つの配列に分割しました。これには約5秒かかりました。これを、それぞれがデータベース全体を通過する必要のある 2 つの別個の SQLite クエリに置き換えました。修正されたデュアル クエリは、非常に高速であるため、約 4 分の 1 秒かかります。

私は、大きなデータベースの Updates で同様の速度の運がありました。

于 2013-09-05T07:25:32.907 に答える