Можно ли ускорить поиск по бд
Можно ли ускорить поиск по бд
У меня есть приложение которое выполняет поиск по бд. Поиск выполняется курсором по одной таблице, строк от 20 000 до 30 000. Поиск выполняется примерно секунд 20-30, можно ли как то ускорить поиск?
Планшеты на которых работает программа не очень мощные, 512-1024 оперативы, процы 2-ух ядерные 1.2.
Бд сделана в sqlite, и я ее загружаю в папку "assets".
Заранее спасибо за любую информацию по делу.
Планшеты на которых работает программа не очень мощные, 512-1024 оперативы, процы 2-ух ядерные 1.2.
Бд сделана в sqlite, и я ее загружаю в папку "assets".
Заранее спасибо за любую информацию по делу.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Можно ли ускорить поиск по бд
Т.е. вы хотите чтобы вам помогли по БД без понимания что вы ищете и как ищете?
Re: Можно ли ускорить поиск по бд
Совсем ты неправильно ищешь, я уверена. Что значит курсором? запросом надо искать, а курсор - это РЕЗУЛЬТАТ запроса/поиска. Делается это все за мгновения на таком количестве записей.
Приводи код и задачу - что там ты разыскиваешь.
Приводи код и задачу - что там ты разыскиваешь.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Можно ли ускорить поиск по бд
Целых 20 тыс записей, думаю тебе нужен мейнфрейм за пару $млрд , который будет искать в БД и отсылать результат.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Можно ли ускорить поиск по бд
Я сравниваю каждое значение с переменной "StrOut"
Задача показать все строки в которых содержаться искомое слово в одной таблице.
Например: в таблице фамилия и имя, поиск идет по фамилии, результат должен содержать все строки с искомой фамилией.
Код: Выделить всё
Cursor friendCursor = database.query(TABLE_NAME,new String[]
{FRIEND_ID, ID_DBTR_SURNAME, ID_DBTR_NAME, ID_DBTR_PATROMYMIC, ID_DBTR_BORN, ID_DBTR_ID_SERIAL, ID_DBTR_ID_NUMBER, DOC_INFO, STATUS},
null, null, null, null, STATUS);
friendCursor.moveToFirst();
if(!friendCursor.isAfterLast()) {
do {
StrOut = friendCursor.getString(1);
if (StrOut.compareToIgnoreCase (search) == 0){
...
}
} while (friendCursor.moveToNext());
Например: в таблице фамилия и имя, поиск идет по фамилии, результат должен содержать все строки с искомой фамилией.
Re: Можно ли ускорить поиск по бд
Почитайте про SELECT FROM WHERE выборку.Bulavin52 писал(а):Я сравниваю каждое значение с переменной "StrOut"Задача показать все строки в которых содержаться искомое слово в одной таблице.Код: Выделить всё
Cursor friendCursor = database.query(TABLE_NAME,new String[] {FRIEND_ID, ID_DBTR_SURNAME, ID_DBTR_NAME, ID_DBTR_PATROMYMIC, ID_DBTR_BORN, ID_DBTR_ID_SERIAL, ID_DBTR_ID_NUMBER, DOC_INFO, STATUS}, null, null, null, null, STATUS); friendCursor.moveToFirst(); if(!friendCursor.isAfterLast()) { do { StrOut = friendCursor.getString(1); if (StrOut.compareToIgnoreCase (search) == 0){ ... } } while (friendCursor.moveToNext());
Например: в таблице фамилия и имя, поиск идет по фамилии, результат должен содержать все строки с искомой фамилией.
Например:
Код: Выделить всё
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT * FROM 'myTable' WHERE name = 'иван';
Cursor cursor = db.rawQuery(selectQuery, null);
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Можно ли ускорить поиск по бд
ни в коем случае так не делай. Читай уроки тут - все это есть, как делать выборку только тех записей, которые тебе нужны.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Можно ли ускорить поиск по бд
Спасибо за советы, буду читать.
Re: Можно ли ускорить поиск по бд
Спасибо всем большое!
Реализовал так:
Работает практически мгновенно 
Реализовал так:
Код: Выделить всё
selection = "id_dbtr_surname = ?";
selectionArgs = new String[] { search };
c = database.query("friends", null, selection, selectionArgs, null, null, null);
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Можно ли ускорить поиск по бд
У вас же еще там какое-то условие
Re: Можно ли ускорить поиск по бд
это условие на совпадение строк
