Android: нужен совет по SQLite, поиск медленный - PullRequest
0 голосов
/ 04 января 2012

Я должен искать в базе данных 26024 записей и считать.Раньше он был быстрым с меньшим количеством записей, но теперь занимает около 10 секунд и замедляет приложение.Мне было интересно, смогу ли я получить совет относительно того, как ускорить процесс, или я делаю что-то не так.Вот код:

            while (cursor.moveToNext()) {
                 String word = cursor.getString(0);
                 if (word.equals(input)) {
                       String nikus = cursor.getString(1);
                               String def = cursor.getString(2);
                   ret.append(" " + nikus + "\n"+ def + "\n");
                   g = null;
            }

РЕДАКТИРОВАТЬ: В моей базе данных у меня есть таблица определений, и в таблице есть 3 поля, одно из которых представляет собой слова для сравнения, второе - это полное слово, атретье - само определение.Надеюсь, это поможет вам, ребята, немного больше.

    CREATE TABLE [definitions] (
  [word] TEXT, 
  [fullword] TEXT, 
  [definition] TEXT);

РЕДАКТИРОВАТЬ: вот ошибка, которую я получаю 01-04 00: 47: 54.678: E / CursorWindow (4722): нужно расти: mSize = 1048576,size = 17, freeSpace () = 13, numRows = 15340

1 Ответ

0 голосов
/ 04 января 2012

Комментарий laalto выше верен. Вы должны запустить оператор select с предложением where, который возвращает только те строки, в которых слово равно входному значению (не забывайте о чувствительности к регистру). Индекс в столбце слова поможет выполнить запрос еще быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...