2014-09-09 4 views
0

Я пытаюсь сделать свое приложение настолько быстрым и реактивным, насколько это возможно. Интересно, что лучше, используя простой объект String или использовать SQLiteQueryBuilder.SQLiteQueryBuilder vs Simple String

+0

Является ли ваше приложение медленным? отвечать на запросы? поиск узкого места. Это действительно запросы sql? – njzk2

ответ

-1

Как можно быстрее SQL требует индексированную базу данных. Фактические средства запросов мало влияют на скорость выполнения. IE вы выбираете порядок по полю2, у вас должен быть указатель на поле2.

QueryBuilder также устраняет распространенные ошибки кодирования. Правильное использование разделителей выполняется для вас, когда вы проходите в selectionArgs.

Query Builder в поставщике контента для SQLite запроса Параметры Builder соответствуют параметрам поставщика контента.

// Пример простого выбора по идентификатору с построителем запросов от поставщика контента Uri.

 queryBuilder.appendWhere(KEY_ID + "=" 
       + uri.getLastPathSegment());  
+0

Это широко открыта для SQL-инъекции – rds

+0

Последний сегмент URI должен быть числовым. Я полагаю, вы также должны проверить, что он является числовым, чтобы быть в безопасности. – danny117

0

Я не 100% уверен, что вы имеете в виду «простой объект String» но обычно говорят, вы можете быть уверены, что любая операция в памяти с Strings будет гораздо быстрее, чем операции с базами данных.

Однако это не показатель того, что SQLite является плохой базой данных (в отношении производительности), а скорее результатом надежной системы, которая сохраняет свои данные в файловой системе, которая предлагает транзакции ACID и поддерживает стандарт SQL92 (только чтобы упомянуть некоторые особенности). Если вам не нужны эти функции, и если вы хотите максимальной производительности: сохраните все в «простые объекты String».

Если вы хотите воспользоваться некоторыми функциями базы данных выше, вы можете использовать SQLite как базу данных в памяти. См. SQLiteOpenHelper() для более подробной информации.

При изучении SQLite вам рекомендуется вычищать готовые операторы, контексты транзакций и индексы для лучшей производительности (см., Например, статьи #1 и #2).

Удачи вам!