0

これは以前に尋ねられた可能性がありますが、私はそれをどのように呼ぶかを知らないだけなので、有限の答えを見つけるのはちょっと難しいです.

とにかく、私は現在 Android アプリケーションを開発しており、SQLite をデータ ストアとして利用しています。この質問をしたいのですが、以下の2つの中でどちらがうまくいくと思われますか。

DB への 1 回のトリップ (バルク結果) と DB への複数回のトリップ (チャンク結果)

バルク結果とチャンク結果の両方がリストに格納されます。

このシナリオでは、次のような 3 つのグループを持つ 15 のレコードがあるとします。

App - IsFirstRun, IsNew, DatePurchased, etc..
User - Username, Password, Birthdate, Locale, etc..
License - Mode, Writes, Log, History, etc..

これは次のようになります。

Group    Field        Value
App      IsFirstRun   N
App      IsNew        Y
App      DatePurchased
User     Username     Hello
User     Password     World
User     Birthdate    02/24/1950
Lic      Mode         F
Lic      Writes       200

Bulk は 1 回のトリップですべてのフィールドを返しますが、Chunk は 3 回のトリップですべてのフィールドを返します。

バルクなど。

userPrefValues = db.getCategoryValues2("USER_PREFS");

App      IsFirstRun   N
App      IsNew        Y
App      DatePurchased
User     Username     Hello
User     Password     World
User     Birthdate    02/24/1950
Lic      Mode         F
Lic      Writes       200

チャンク;

userPrefValues = db.getCategoryValues2("USER_1");
userPref2Values = db.getCategoryValues2("USER_2");
userPref3Values = db.getCategoryValues2("USER_3");

App      IsFirstRun   N
App      IsNew        Y
App      DatePurchased

User     Username     Hello
User     Password     World
User     Birthdate    02/24/1950

Lic      Mode         F
Lic      Writes       200

そして、両方の結果セットが (通常どおり) ループを使用して繰り返されます。

最初は、データサイズが小さいため、マルチトリップをより適切に制御できると言えます。他の人が何を考え、そのようなシナリオ/状況にどのようにアプローチするかを知りたいです。

前もって感謝します。

4

2 に答える 2

0

値が非常に少ないため、パフォーマンスもメモリ使用量も問題になりません。

コードで処理するのが最も簡単な方法を使用してください。(値ごとに 1 つのクエリを実行することさえ可能です。)

于 2013-11-11T10:34:32.130 に答える
0

ここに私の単純なアルゴリズムがあります:

  1. データサイズが小さい => トリップが少なくなり、より多くのデータを取得してメモリに保持できます。データが小さいため、メモリの制約は大きな問題にはなりません。

  2. データ サイズが大きい => 必要に応じて毎回小さなデータでより多くの旅行。データが大きいため、メモリの制約が問題になります。

つまり、基本的には、アプリのメモリ量とアプリケーションが使用するデータ量に依存します。

于 2013-11-11T08:20:35.123 に答える