iOS 数据库比较:SQLite vs. Core Data vs. Realm

如果你想开发一个能够快速运行并没有Bug的伟大应用,你就必须得仔细的考虑一下你的应用的各个方面。有这么一个你必须解决的方面是怎样存储和查询大数据,那么你就很可能会使用到数据库。在大多数情况下,IOS 数据库都会选择SQLite和Core Data,还有一个相对较新的数据库Realm。

这篇文章讲述了每种选择的优缺点,并讨论了如果你已经使用了SQLite 或 Core Data,那么怎么转换到Realm的过程。

SQLite

SQLite是在世界上使用的最多的数据库引擎,并且还是开源的。它实现了无配置,无服务要求的事务数据库引擎。SQLite可以在Mac OS-X, iOS, Android, Linux, 和 Windows上使用.

由于它是使用ANSI-C开发的,因此它提供了一个简单的,方便使用的编程接口。SQLite也是一个小的,轻量级的,可以被存储在跨平台磁盘文件的完善的数据库。

SQLite之所以这么流行的原因是:

独立于服务器

零配置

多进程和线程下安全访问。

在表中使用含有特殊数据类型的一列或多列存储数据。

如何在 Ubuntu 15.04 上安装带 JSON 支持的 SQLite 3.9.1 

SQLite3简单操作

SQLite3中存储类型和数据类型结合文档解析 

SQLite3 安装、基本操作

Ubuntu 12.04下SQLite数据库简单应用

Ubuntu 12.04下安装 SQLite及其使用方法

SQLite 数据库入门基础教程

SQLite 的详细介绍请点这里
SQLite 的下载地址请点这里

Core Data

Core Data 是App开发者可以使用的第二大主要的IOS存储技术。你需要根据数据类型和数据量进行管理和存储,SQLite和Core Data都有它们各自的优缺点。Core Data 更加关注于对象而不是传统的表数据库方法。使用Core Data,你可以存储一个Objective-C类的对象。

尽管它们从本质上不相同,但是Core data::

比SQLite使用更多的内存。

比SQLite使用更多的存储空间。

比SQLite在取数据方面更快。

Realm 

Realm 是个新技术。Realm天生比前面提到的数据库解决方案更快,更高效。新的解决方案就叫做Realm,它是一个跨平台的移动数据库。它可以在Objective-C 和Swift中使用,并且它是专门为 iOS 和 Android设计的数据库。

Realm最主要的优势是:

 绝对免费

 快速,简单的使用

没有使用限制

为了速度和性能,运行在自己的持久化引擎上。

最棒的是你通过两行代码就可以处理所有的工作。Realm相比于SQLite和Core Data而言,更易于安装并且运行的更快。不仅如此,数据库文件还可以在iOS和Android上通用。

如果你正在设计一款面向很多用户,有很多记录的程序,那么你从设计的一开始就需要特别注意它的可扩展性。Realm在这方面非常出色,并且能够让你快速的操作大量数据。

想要开始使用Realm,你所需要的仅仅是最低iOS 8或者OS X 10.9的系统。早期版本的系统并不支持本地存储与数据库的全新的简单解决方案。

切换到Realm

如果你已经使用了Core Data,并且你想转换到Realm,过程很简单。很多开发者用了一两小时就完成了。注意Core Data 和 Realm 都是以对象的形式处理数据的,因此你只需要重构Core Data 代码,使用Realm就可以了。

Realm已经概括了切换的过程, 这里是我对它的总结:

移除Core Data 框架。定位你代码中包含Core Data 代码的部分,然后重构。它们总结了一个很好的方法来帮助使用 Core Data的每一行代码抛出编译错误。

移除Core Data 安装部分的代码。 你的应用里的某个地方一定有Core Data 安装代码的部分,你必须彻底的移除掉Core Data 。Realm在你第一次访问Realm对象的时候就会立马自动配置。你可以选择你想存储Realm数据文件的位置,但在运行时,你仍然可以选择。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/75a4a1c21e8c54f3dc0f2e2573f5523f.html