2012-02-26 14 views
0

私はAndroidで辞書アプリケーションを実装しようとしています。ユーザーがEditTextに文字を入力する(または文字を削除する)と、アプリケーションはデータベースに照会し、EditTextのテキストで始まるすべてのエントリを表示します。私が使用しているデータベースには80000を超える行が含まれているため、クエリのパフォーマンスは私が望むほど良くはありません。しかし、実際の問題は、ユーザーがEditTextから文字を削除するときに発生します。したがって、私はStackオブジェクトにCursorオブジェクトを格納することをお勧めします。ユーザーが文字を削除すると、アプリケーションはスタックから前のCursorをポップして使用します。 SQLiteクエリから返されたCursorオブジェクトを格納するのは悪い考えですか?AndroidにSQLite Cursorを格納するのは悪い考えですか?

答えて

2

"like"を使用したクエリは、リレーショナルデータベースにはあまり適していないため、SQLデータベースはこの目的ではまったく適切なツールではない可能性があります。エントリごとに接頭辞を格納(および索引付け)することで、データを非正規化すると、パフォーマンスが向上する場合があります。エントリの優先順位をつけるためにスコアの種類を忘れないでください(たとえば、エントリが選択された場合、スコアが高くなります)

0

あなたのケースでは、私は非常に多くのカーソルを格納することは悪い考えだと思います。カーソルオブジェクト自体は、クエリのすべての結果を保持します。

関連する問題