Быстрый способ получить результаты SQLite с одним столбцом в списке - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть список слов с дополнительными столбцами в моей БД SQLite.Я хочу просто получить список слов (в основном один столбец).Ниже приведен код, как я это делаю.

Cursor c = db.rawQuery("select word from wordlist", null);
            if (c.moveToFirst()) {
                do {
                    words.add(c.getString(c.getColumnIndex("word")));
                } while (c.moveToNext());
            }
            c.close();

Работает, но медленно.Например, для примерно 100 тысяч слов требуется около 1 секунды.Однако, если у меня есть только список слов в текстовом файле, его можно прочитать за ~ 100 мс.

Можно ли как-то прочитать один столбец из БД SQLite непосредственно в список вместо получениякурсор и итерации по нему, чтобы получить все значения?Если нет, то какое решение лучше?Вместо этого просто вернитесь к текстовому файлу?

1 Ответ

0 голосов
/ 26 сентября 2019

Я бы предложил выбрать только некоторые из предметов.Допустим, вы получаете 10 тыс. Слов одновременно.

Ваш SQL-код должен выглядеть следующим образом

select id, word from wordlist - First time you get 10k
select id, word from wordlist where id > lasId 

lastId Вы можете получить его из последнего элемента в вашем списке.

Надеюсь, это немного поможет.

...