Я создаю Android приложение, которое внутренне хранит данные в sqlite DB. Мы используем библиотеку Cloudant в нашем коде.
У меня есть разные типы данных в нашей БД - все с разными идентификаторами. Пример: могут быть данные с GUID, начинающиеся с A, B, C, D. Это означает, что у нас могут быть GUID, такие как A_, B_ и т. Д.
Теперь я хочу получить все записи БД, чьи GUID начинается с A_ и хранится локально в самом приложении для дальнейшей обработки. Тем не менее, я вижу только функцию, чтобы получить все идентификаторы из БД. Итак, что я делаю, это:
List<String> allID = db.getIds();
for (int i=0;i<allID.size();i++)
{
String guid = allID.get(i);
if (guid.startsWith("A_"))
{
//store and process this guid.
}
}
Переменная db является объектом класса DatabaseImpl. java из облачной библиотеки.
Это определенно хорошо, так как мы только получение и обработка записей БД, которые нам нужны. Однако что мне не нравится в этом подходе, так это то, что мы на самом деле получаем все GUID в БД и затем проверяем каждый из них.
Я надеялся, что у нас будет функция, которая позволит нам искать для идентификаторов с помощью регулярных выражений. Пример: что-то вроде -
List<String> aID = db.getIds("A_");
Что более важно, это улучшит производительность? Я подозреваю, что внутренне в БД нам также нужно будет прочитать все идентификаторы, а затем получить те, которые мы хотим. (Если нет какой-либо оптимизации, которая помогает ускорить это)
Любые материалы / комментарии.
Заранее спасибо. Andy