2016-05-08 8 views
2

私は指定された名前の100万レコードの中から検索する電話帳のようなアプリケーションを開発しようとしています。私の主な関心事の一つはルックアップのパフォーマンスです。 私の質問は次のとおりです:android:1Mデータベースを検索するためのレコード

1- 1MレコードのAndroidでSQLiteデータベースを使用することは可能でしょうか?

2データベースクエリを高速化するための既知の解決法はありますか?

第2の質問については、Indexingを使用し、データベースをいくつかの小さなデータベースに分割することが私の頭に浮かんでいます。 これを実行する方法はありませんか?

+0

指定された名前に対して100万に達するのに使った数学を記述してください。 –

+2

"1MレコードでアンドロイドのSQLiteデータベースを使用することは可能でしょうか?" - それは要約に答えることができません。これは、データベース構造とクエリの性質に大きく依存します。たとえば、たくさんの結合が問題になります。 「データベースクエリを高速化するための既知のソリューションはありますか? - インデックス。また、あなたの名前のルックアップをどのように計画しているかによって、「LIKE」の代わりにFTS3/FTS4を使用します。 「データベースをいくつかの小さなデータベースに分割する」 - それは事態を悪化させるようです。 – CommonsWare

+0

スマートフォンがない100万レコードのデータベースを取ることができる、外部データベースを使用しようとします。 –

答えて

0

はい、1Mレコードのデータベースを持つことができます。データベースが事前に設定されていない場合は、通常の方法で処理することができますが、事前に設定されたデータベースを使用する場合は、サイズ制限が10MBであるため、あなたのアプリが最初に起動されたときにassetsフォルダからデータベースをコピーします。 https://github.com/jgilfelt/android-sqlite-asset-helper

他の解決策は、(GETリクエスト)の高速データ処理のためのサーバ多分アマゾンAWS上のデータを入れて、あなたのアプリケーションからサーバーを呼び出すことです。

すべてを非常に簡単にテストできます。ここから4Mの行を含むサンプルSQLデータベースを入手してください:https://dev.mysql.com/doc/employee/en/employees-introduction.html。データをsqliteに変換し、android-sqlite-asset-helperを使用してアプリで使用します。

関連する問題