2011-01-21 12 views
14

私は現在、非常に大きなデータベースを作成する可能性のあるアプリケーションを開発中です。私はいくつかの余分な部屋を可能にするためにSDカードにアプリをインストールすることを計画していた。最近のお取引は、それが良い考えではないかもしれないと私に警告しています。この措置の危険性を軽減するための措置はありますか?または、より良い選択肢がありますか?Androidで大規模なデータベースを扱う

答えて

11

これはcomprehensive postです(私は著者ではありません)。

私は、全体として、SQLiteはファイルにアクセスするための単なるSQLメカニズムであることを伝える必要があると思います。現在の市場限度額は、APK全体で50MBです。内部メモリにインストールする場合は、APKサイズの2倍が必要です。 sdcardにインストールするには、指定されたAPKサイズだけが必要です。 SQLiteのは、あなたのファイルを超えるだけの抽象化であるので、 1)あなたが選択、挿入、更新などを行うときに、あなたは)コスト 2.を読み書きSDカード負うことになります。ここでは

は、あなたが不利に働いされるものです私はパフォーマンスに基づいてsoft limit of 10000 recordsの言及を見ました。この記事は少し古く、その可能性は高いです。

それ以外の場合は、実現可能性を確認するためにいくつかのテストを設定する必要があります。 Googleの大まかな検索ではこれまでのベンチマークは表示されませんでした。

+0

良い答え。 +1。私は疑問がある場合は、sqliteファイルは、アンドロイドでは、外部の制限は何ですか?それはデスクトップと同じですか、それでも何か制限がありますか? – Vinay

4

以前に指摘したように、SQLiteには、探している機能があり、小さなライブラリにパッケージ化されています。シンプルなファイルアクセスを、SQL APIを使用した信頼性の高い回復可能なトランザクションデータアクセスで置き換えるように設計されています。彼らのmain pageの素晴らしい要約があります。

SQLiteを使用している文字通り何千ものプロジェクトがあります。あなたのデータセットが(100-200MB以上)非常に大きくなる場合は、Berkeley DBをオプションとして使用することを検討してください。 Berkeley DBは最近、完全にSQLiteと互換性があるSQL APIのサポートを導入しました。 SQLite SQLパーサ、クエリプランナ、およびエグゼキュータによって提供される機能に加えて、Berkeley DBがよく知られている信頼性とスケーラビリティも得られます。私たちはSQLiteを使い始めた人が数人います。 SQLiteで利用できない並行性、スケーラビリティ、信頼性が必要であることに気付いた彼らは、SQLiteライブラリをBDBライブラリに置き換え、アプリケーションを再コンパイルし、数日以内にバークレイでテストして実行しました。

私はBerkeley DBのプロダクトマネージャーの1人です。私はちょっと偏見があります。 :-)しかし、Berkeley DBの並行性、信頼性、スケーラビリティとSQLiteの普遍性と使いやすさを両立させるため、BDB SQL APIを実装しました。特に、大規模なデータセットでは、Berkeley DBはアプリケーションのパフォーマンスをすべて変えることができます。

+0

すべてのAndroid搭載端末でBerkeley DBを使用できますか? AndroidアプリケーションをSQLiteからBDBに切り替えるのは簡単ですか? –

+1

Berkeley DBはhttp://bit.ly/gNWr1Cからダウンロードできます。 BDBとBDBの両方のJava EditionはAndroid上で動作します。 SQL APIを使用する場合は、BDB(BDB JEではなく)をダウンロードする必要があります。両方の製品はAndroid用にテストされサポートされており、Android上でBDBベースのアプリケーションを実行している顧客がいます。 Berkeley DBを構築し、BDBライブラリでアプリケーションを指す必要があります。どのライブラリを使用しているか注意しなければなりませんが、セットアップが完了したらすぐに実行する必要があります。ご不明な点がありましたら、OTNフォーラム(http://bit.ly/g5Fkbz)に投稿してお知らせください。 – dsegleau

+0

このOTNフォーラムのリンクは便利です:http://bit.ly/dZ86xg – dsegleau

2

上記のとおり、Android上でJava版ではなくBerkeley DBを使用できます。マイナーな調整が必要なので、クロスコンパイルプロセスhereの手順について説明しました。

関連する問題