Realm vs Sqlite用于移动开发

时间:2016-05-11 01:26:32

标签: database sqlite mobile xamarin realm

作为Xamarin开发人员,我曾经使用 Sqlite 作为移动数据库,
最近境界出现了 关于它们之间的差异的任何想法 表演&易于使用..等等?

使用其中任何一种的最佳做法是什么?

2 个答案:

答案 0 :(得分:21)

Realm和Sqlite在很多方面都有很大不同。

以下是您可以通过两篇文章来了解主要区别:

System Properties Comparison Realm vs. SQLite
5 Reasons Why You Should Choose Realm Over CoreData/SQLite

正如Slavia在评论中所建议的那样,还要看看this article对几个ORM的比较,包括Realm。

答案 1 :(得分:21)

我是Realm的Xamarin团队的开发人员,所以我可以告诉你更多关于Xamarin产品的工作原理。

Realm有一个C ++核心,在所有产品中都很常见。这就是为什么我们为每个平台发布而不仅仅是一种语言 - 我们需要包含本机核心。虽然我们支持代码的PCL版本,但我们没有 PCL库 - 在构建时,您的PCL代码将链接到匹配的IOS或Android库。

所有Realm产品都是单独开发的,为给定的编程语言提供惯用的界面,在代码和数据之间尽可能地使用。

这意味着,例如,C#产品提供LINQ进行查询,并使用C#对象作为定义数据模型的方法。在构建时,运行Fody代码生成器以添加属性设置器和getter,这样您的C#对象将直接与核心C ++数据交互。与典型的ORM产品不同,不会将数据从数据库复制到缓冲区,然后再复制到对象中。

领域数据是内存映射的,所以它直接从你的代码到存储。我们生成替换自动属性getter和setter的访问器方法。

我们使用术语零拷贝来描述这一点。相比之下,大多数其他系统将具有C#对象,这些对象具有支持其属性的字段。这些对象通常通过从已从磁盘存储中读取的SQLite缓冲区进行复制来填充。这是两个级别的复制。