Это модель для моего RealmObject
класса:скорость операции поиска в базе данных Realm
public class ARDatabase extends RealmObject
{
@PrimaryKey
private String uid;
private String namex;
private String desc;
private boolean isVideo;
private boolean isDeleted;
private String urlImg;
private String urlApp;
private int updates;
private boolean isDownloaded;
private String location;
public ARDatabase(){}
public String getUid()
{
return uid;
}
public void setUid(String uid)
{
this.uid = uid;
}
public String getNamex()
{
return namex;
}
public void setNamex(String namex)
{
this.namex = namex;
}
public String getDesc()
{
return desc;
}
public void setDesc(String desc)
{
this.desc = desc;
}
public boolean getIsVideo()
{
return isVideo;
}
public void setIsVideo(boolean isVideo)
{
this.isVideo = isVideo;
}
public boolean getIsDeleted()
{
return isDeleted;
}
public void setIsDeleted(boolean isDeleted)
{
this.isDeleted = isDeleted;
}
public String getUrlImg()
{
return urlImg;
}
public void setUrlImg(String urlImg)
{
this.urlImg = urlImg;
}
public String getUrlApp()
{
return urlApp;
}
public void setUrlApp(String urlApp)
{
this.urlApp = urlApp;
}
public int getUpdates()
{
return updates;
}
public void setUpdates(int updates)
{
this.updates = updates;
}
public boolean getIsDownloaded()
{
return isDownloaded;
}
public void setIsDownloaded(boolean isDownloaded)
{
this.isDownloaded = isDownloaded;
}
public String getLocation()
{
return location;
}
public void setLocation(String location)
{
this.location = location;
}
}
И это, как я искать uid
из моей области по умолчанию:
final ARDatabase db = mRealm.where(ARDatabase.class).equalTo("uid",imageTitles.get(result)).findFirst();
Теперь, вопрос: Учитывая, что у меня 10-100 объектов внутри моего царства, насколько бы быстрым был поиск?
Вариант использования предназначен для приложения для распознавания изображений. Когда приложение распознает изображение, оно возвращает uid
и на основе uid
мне необходимо предоставить наложение на экране информации, связанной с uid
как можно скорее.
Теперь, когда у меня есть около 10-100 объектов, будет линейный поиск O(n)
или общий двоичный поиск O(log n)
будет быстрее, чем Realm
поиск Я использовал выше? Или можно настроить Realm
, чтобы получить более быстрые результаты? (в случае, если он не выполняет самый быстрый способ сейчас).
Благодарим вас за то, что он разъяснил это полностью :) – OBX
Кроме того, возможно, стоит использовать findFirstAsync и использовать прослушиватель изменений, если запрос выполняется из потока пользовательского интерфейса. –