2012-02-27 5 views
0

私のアンドロイドアプリでは、データをローカルに保存してインターネットのデータ使用量を減らし、オフラインアクセスを許可する予定です。現在のスキーマには9列あります。うち2つの列はURLを格納するためのもので、1つは平文の140文字、1つは日時、2つは平文の100文字、その他の3つは整数です。挿入されるレコードの数は、ユーザーがどれくらいのレコードを必要とするかによって異なります。彼はいつでも削除することができます。複数のレコードが1回挿入されます。削除と同じです。 私の質問は、挿入、削除、保守という点でアプリのオーバーロードが発生するのでしょうか?私は最初にこのデータをファイルシステム(xmlファイル)に保存することを考えましたが、レコードの削除は難しいかもしれません。だから私はストレージとしてSQLiteのアプローチやXMLファイルに行く必要があります。他のソリューションも歓迎されています。SQLiteスキーマ、データベースサイズ、アクセス速度、疑問の更新

答えて

1

私がお勧めしたいのは、SQLite over xmlです。 SQLiteはより速くて簡単になるだろうIMHO。私は両方から読んだ。決して挿入と更新を行いませんでした。

xmlファイルを開いてから解析し、閉じられたデータを取得する必要があります。0)正しい削除、更新、挿入がXMLファイルではもっと難しくなります。

+0

問題は、サーバーからダウンロードしたイメージにもキャッシュとしてローカルストレージを使用していることです。 SDカードが使用可能な場合は、内部memが使用されていない場合は使用されます。どのくらいの画像がダウンロードされ、sqliteデータベースの上に挿入されているかは、ユーザが選択するため、バインドされていません。しかし、同時に、私は、私のアプリが応答しない、またはこれをすべてやってあまりにも多くの時間を取ることを望んでいません。 – SachinGutte

+0

あなたはAndroid開発にどれほど親しんでいるのかよく分かりませんが、AsyncTaskを使用してできるだけ早くこれらのことができることを確認し、UIスレッドを縛らないでください(応答を続ける)。また、データベース内の画像やその他のファイルの場所をSDカードまたは内部メモリに保存することもできます。 – bytebender

+0

また、デバイスが使用されていないときにサービスを使用して作業を行うことも考えられます。 – bytebender

2

はいはいはい、私は絶対にSQLiteのために行くと言います。あなたが記述したスキーマは実際にはかなり控えめであり、あなたが概説した使用パターンは何も重要ではありません。

SQLiteは、かなりの量のデータを効率的にデバイスのストレージに保存できるように設計されています。これは、特に効率的な形式ではなく、単一のレコードを取得しようと考えると、それよりもはるかに遅いXMLでデータを格納する方が望ましいでしょう。

私は自分自身がテーブルあたり10列以上の15以上の異なるテーブルを含むアプリケーションを書いています。要件はSqliteが快適に処理します。

+0

お返事ありがとうございます。私はSQLiteに固執する。 :D – SachinGutte

+0

同様に考慮すべき点:0)+1 – bytebender

関連する問題