我已经使用ActiveAndroid一段时间了,我最近听说Realm是另一个不错的选择。 我正在考虑更改我的应用程序以使用Realm,但在此之前,我在寻找是否有人已经完成了这两者之间的性能比较。 我在realm的网站上找到了一些比较,但那些是在ORMLite和SQLite上。

任何建议表示赞赏。

===============>>#1 票数:8

Realm无法与ActiveAndroid直接比较,因为Realm是一个移动数据库,其自身的持久性引擎是为了简化和速度而构建的,以取代传统的SQLite,而ActiveAndroid是SQLite的ORM。 因此,当进入Realm意味着您将不再使用传统的SQLite。

是的,Realm很快(根据我的经验并根据他们的基准测试)但是与传统SQLite的区别并不明显,除非你的应用程序使用数据库事务或搜索量很大,那么我建议你使用Realm。 如果没有,那么已经正常工作的ActiveAndroid就可以了。

虽然,我建议在做一个新的项目/应用程序时,尝试熟悉Realm,这样当你想出一个大量使用数据库的应用程序时,你真的会欣赏Realm的速度。

===============>>#2 票数:2

Active Android上次更新两年前,Realm是一个活生生的项目。

Active Android只是SQLite数据库的包装。 Realm提供了更多功能,如自动刷新查询结果,从JSON创建对象或数据库更改通知。

我认为除非你插入数百万条记录,否则性能不相关,但如果这是真的,你最好直接使用SQL。

===============>>#3 票数:1

最好使用Realm。 在我的上一个项目中,我使用它并且效果更好。

在GUI中如果要显示小于25岁的用户列表。现在从工作线程中获取互联网,但是当您将自动保存数据时,所有数据都将被更新。无需再次查询。

它快得多。 并且在架构上易于使用。

===============>>#4 票数:1

Realm是一个适用于iOS和Android的跨平台解决方案(当您同时针对两者时,它非常棒)。

===============>>#5 票数:1

嗨mudit可能为时已晚,但这对其他人有帮助。 我自己的境界是最好的选择。

领域

Realm是一个移动数据库,是SQLite的替代品。 虽然是OO数据库,但它与其他数据库存在一些差异。 Realm没有使用SQLite作为它的引擎。 相反,它拥有自己的C ++核心,旨在提供SQLite的移动优先替代方案。 领域通过C ++核心以通用的基于表格的格式存储数据。 这使得Realm允许从多种语言访问数据以及一系列即席查询。

好处:

  • 比SQLite更快(对于正常操作,比原始SQLite快10倍)

  • 使用方便

  • 为您处理对象转换

  • 便于动态创建和存储数据

我用我的项目比SQlite的速度快了10倍。 因为我在加入100000个数据(行)的for循环SQlite的18分钟 ,但仅境界20秒

===============>>#6 票数:0

由于Realm是一个移动数据库:SQLite和核心数据的替代品。 有关更多信息,请检查性能比较

但是你需要考虑另一个重要因素,即https://realm.io目前支持Android和iOS,而其他基于Sqllite,因此生成的数据库甚至可以在Windows手机,Tizen等中使用。

我希望做出决定会有所帮助。

  ask by mudit translate from so

未解决问题?本站智能推荐:

2回复

如何使用Active Android获取列名

使用Active Android,能否将表的列名作为String[] ? RawQuery()返回一个List<Model>所以我不能只是将PRAGMA插入其中。 建议的重复项与获取表名有关,与Active Android不相关。
1回复

Room vs Active Android

最近谷歌宣布了Room库,方便android本地数据库存储实现。 由于我在之前的项目中已经使用过Active Android,因此无法理解Room over Active android的优点。 事实上,我认为Active Android更容易实现。 有人解释了Google的Room和Ac
6回复

为什么Active Android无法使用gradle 2.0?

我在我的应用中使用Active Android。 它工作正常,直到我将Android Studio从1.3升级到2.0。 通过此升级,我的gradle也升级到2.0,这导致Active Android出现问题。 使用gradle 2.0构建时出现此错误。 我尝试使用gradle
1回复

使用Active Android将日期保存到sqlite数据库

我有一个简单的类Event,它使用活动的android保存到SQlite数据库中,如下所示: Event.java AddEventActivity.java: 目前,我正在将日期以及开始/结束时间另存为字符串。 但是我在我的应用程序中添加了一个新功能,我想将当前日期/时
1回复

如何使用活动的android启动应用程序与一个准备好的SQL数据库

我想用一个预制的SQLite数据库启动我的应用程序,我将能够读取和写入。 我目前正在我的应用程序中使用Active Android来读写MySQL表。 是否有可能使用Active android?从文件中打开SQLite数据库表,还是有更好的方法来实现它?
2回复

活动的Android SQL

我想在Active Android中查找Android的sql查询,但不知道如何执行此操作 和类似的查询 有没有可能? 如何?
1回复

如何使用Active Android实现插入或替换列值?

我有ActiveAndroid的型号, 此注释将“onUniqueConflict = Column.ConflictAction.REPLACE”替换发现冲突的整行。但我想要做的是更改特定列值,其余列值应保持不变。 如INSERT OR REPLACE那样。 在我的情况下,想要仅更
1回复

在活动的Android中自动递增

我试图使用活动的android,我对如何在表格中实现自动递增字段存有疑问? 他们在文档中提供了这样的代码 我们可以使remoteId字段自动递增吗?
1回复

当Active Android包含在库中时,无法解决Gradle中的活动Android依赖关系

我有一个库项目,包括使用Gradle的活动android。 为了让它工作,我必须添加 并为它添加存储库,如下所示: 但是,如果我在库项目中执行此操作,则会收到错误: 我正在添加我的库模块,如下所示: 要删除此错误,我必须以相同的方式将存储库添加到主应用程序模块:
1回复

如何使用Active Android和内存数据库使用Robolectric进行单元测试?

如标题所示。 我知道robolectric提供的内存数据库有限。 有什么方法可以在Active Android上使用它吗? 在默认配置下,似乎在所有测试运行后都会清除数据库,但不会为每个测试清除数据库。