私は現在、非常に大きなデータベースを作成する可能性のあるアプリケーションを開発中です。私はいくつかの余分な部屋を可能にするためにSDカードにアプリをインストールすることを計画していた。最近のお取引は、それが良い考えではないかもしれないと私に警告しています。この措置の危険性を軽減するための措置はありますか?または、より良い選択肢がありますか?Androidで大規模なデータベースを扱う
答えて
これはcomprehensive postです(私は著者ではありません)。
私は、全体として、SQLiteはファイルにアクセスするための単なるSQLメカニズムであることを伝える必要があると思います。現在の市場限度額は、APK全体で50MBです。内部メモリにインストールする場合は、APKサイズの2倍が必要です。 sdcardにインストールするには、指定されたAPKサイズだけが必要です。 SQLiteのは、あなたのファイルを超えるだけの抽象化であるので、 1)あなたが選択、挿入、更新などを行うときに、あなたは)コスト 2.を読み書きSDカード負うことになります。ここでは
は、あなたが不利に働いされるものです私はパフォーマンスに基づいてsoft limit of 10000 recordsの言及を見ました。この記事は少し古く、その可能性は高いです。
それ以外の場合は、実現可能性を確認するためにいくつかのテストを設定する必要があります。 Googleの大まかな検索ではこれまでのベンチマークは表示されませんでした。
以前に指摘したように、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はアプリケーションのパフォーマンスをすべて変えることができます。
すべてのAndroid搭載端末でBerkeley DBを使用できますか? AndroidアプリケーションをSQLiteからBDBに切り替えるのは簡単ですか? –
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
このOTNフォーラムのリンクは便利です:http://bit.ly/dZ86xg – dsegleau
上記のとおり、Android上でJava版ではなくBerkeley DBを使用できます。マイナーな調整が必要なので、クロスコンパイルプロセスhereの手順について説明しました。
- 1. iOSと大規模なデータベースを扱う
- 2. Android:大規模な配列を扱うためのベストプラクティス
- 3. Pythonで大規模な配列を扱うには?
- 4. Javaで大規模な文字列リストを扱う
- 5. javascriptで大規模な配列を扱う方法
- 6. 本当に大規模なマルチ言語プロジェクトを扱う
- 7. 大規模データベース - 1TB以上
- 8. Sybase:大規模データベースから小規模データベースへのダンプ/ロード
- 9. Android - 大規模なSQLiteデータベースのオンラインオフライン同期
- 10. のLucene:IndexSearcher.searchは()私は非常に大規模なデータベースを持っている非常に大規模なデータベース
- 11. Android:大規模なArraylistから検索
- 12. ブラウザで3000万を超える大規模なCSVファイルを扱う場合
- 13. サイズで大規模なデータセット
- 14. EXIを使用する:大規模なXMLファイル(〜20 GB)を扱うには?
- 15. 大規模データベース置換方法
- 16. 大規模データベース用のmysqldbcopyの性能
- 17. 大規模データベース用のMySQLクライアント
- 18. 大規模なスイッチケースをテキストファイル/データベースで置き換える[Java]
- 19. 大規模なsqliteデータベースをチャンクで更新する
- 20. Androidで大きなXMLファイルを扱う
- 21. androidのSQLiteデータベースに大規模な静的テキストデータを追加する
- 22. Androidスクロールレイアウトで表示 - 大規模な風景がスクロールしない?
- 23. 大規模なMySQLアップデートクエリ
- 24. RESTと大規模なデータベースクエリ
- 25. のJava:大規模なリスト
- 26. 大規模なPythonランダムシェアラー
- 27. 追加大規模なXML
- 28. 大規模なデータが
- 29. Laravel:TokenMismatchExceptionは、大規模なビデオファイル
- 30. Python - 大規模なGISデータセットプロット
良い答え。 +1。私は疑問がある場合は、sqliteファイルは、アンドロイドでは、外部の制限は何ですか?それはデスクトップと同じですか、それでも何か制限がありますか? – Vinay