java-Realm数据库中搜索 *** 作的速度

java-Realm数据库中搜索 *** 作的速度,第1张

概述这是我的RealmObject类的模型:publicclassARDatabaseextendsRealmObject{@PrimaryKeyprivateStringuid;privateStringnamex;privateStringdesc;privatebooleanisVideo;privatebooleanisDeleted;privateStringurlImg

这是我的RealmObject类的模型:

    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以获得更快的结果? (以防它现在无法以最快的方式执行).

解决方法:

在Realm中进行搜索始终会更快,因为您可以在C内核中执行整个搜索.自己进行搜索将意味着您在Java和C之间来回往返会产生开销.

快速搜索单个元素的唯一要求是,您在字段上具有@Index注释,但是对于您而言,您已经具有@PrimaryKey,它也将自动应用@Index注释.

因此,您的查询将尽可能快.此外,对于10-100个对象,无论您执行什么 *** 作,它都可能对用户即时显示.

总结

以上是内存溢出为你收集整理的java-Realm数据库中搜索 *** 作的速度全部内容,希望文章能够帮你解决java-Realm数据库中搜索 *** 作的速度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存