Realm Java 使用总结

作者: 花开堪折枝 | 来源:发表于2016-05-24 19:44 被阅读1154次

    Realm 是什么?

    官网:https://realm.io/  中文: https://realm.io/cn/

    个人推荐看英文的文档,一个是慢慢习惯英文的文档,而是中文的更新不一定及时。

    官网介绍:

    Realm,为移动设备而生

    替代 SQLite 和 Core Data。

    为你省下数周的时间和数千行的代码,

    帮你创造出更棒的用户体验。

    为什么用Realm?

    因为公司15年6月准备开发一个新软件,本地数据要求很高,数据在获取回来之后要离线使用,而且需要增量更新、删除等等。所以就对现有的数据库框架做了一个调查,速度、加密、存储路径、学习的简易程度等。发现realm完全符合目前的需求,一下是具体情况:

    DBFlow:不支持分库处理,不支持加密(当时)

    GreenDAO:不支持分库,官方不支持加密

    ActiveAndroid、ORMlite:相对上面来说,速度较慢,同样不支持分库

    注:数据比较多,同一个表里面数据太多影响查询速度,在sqlite数据达到上万条的时候速度明显受到影响,如果表里数据比较大速度更慢。

    Realm性能如何?

    具体性能信息:realm-for-androidrealm-for-ios,下面我摘取了Android的一些信息。

     插入操作:在同一个事务里,每秒插入100K条记录(越高代表性能越好)

    统计操作:每秒能在100K条数据中进行查询后count的次数(越高代表性能越好)

    查询操作:在100K中进行一次遍历查询(越高代表性能越好)

    在集成的时候有一个需要注意的地方,官方提供的gradle是自带全平台支持的,会引起安装包比较大,所以使用google推荐的ndk abifilter去除不需要的架构,减小apk的体积。

    Realm不足的地方

    数据关联:

    这个是一般的ORM框架一样,需要提前建立好关系,如果你需要临时按照一定条件去查询,只可以分开多次查询,不可以像sqlite连表查询。

    稳定性:

    这个可能和我自己的需求有关,应用有一些数据是先准备好的,软件把数据下载下来使用,现在realm还有新的功能在添加,数据保存的格式也会改动,数据库需要升级对我来说比较痛苦。

    更新操作:

    需要按照条件查询出来,写代码更新,不像sqlite一个语句搞定。

    不支持分页:

    查询结果不支持分页,但是相对速度快来说应该不是个事情,25k数据查询出来也是在毫秒级的。

    如果你感觉以上都不是问题,欢迎使用。

    FAQ:

    更多问题可以看官网的FAQ:https://realm.io/cn/docs/java/latest/#faq

    相关文章

      网友评论

      • 波波一起飞:不支持分页就完蛋了
      • 键盘男:没有例子说个**
        键盘男:@花开堪折枝 性能测试之类,你要自己写Demo的呀。
        花开堪折枝:@键盘男kkmike999 感觉官方的使用文档已经很好了,没必要拷贝一下

      本文标题:Realm Java 使用总结

      本文链接:https://www.haomeiwen.com/subject/xrsicttx.html