如果你想开发一个能够快速运行并没有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
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数据文件的位置,但在运行时,你仍然可以选择。