浅谈移动端数据库选型:WCDB、Realm和FMDB

在开发iOS移动端的过程中,难免会涉及到使用数据库的情况,那么在iOS开发的过程中,我们应该选择哪种数据库作为应用的选择呢?下面我们来分析下iOS应用中经常用到的四款数据库 WCDB、Realm和FMDB

1.简介

WCDB
WCDB 是腾讯开源的一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持 iOS、macOS 和 Android。

Realm
Realm 是一个移动数据库,可运行于手机、平板和可穿戴设备之上。可以让你的应用更快速,带来难以想象的体验。其目标是为了代替 CoreData 和 SQLite 数据库,支持 iOS/OS X/Android 平台,提供 Swift/Objective-C/Java 语言

FMDB
FMDB是iOS平台的SQLite数据库框架。FMDB以OC的方式封装了SQLite的C语言API。

2.优缺点

WCDB

优点:
1. 代码轻便:代码量基本等于Realm,都是SQLite的一半。
2. 风格好开发效率高:风格接近于OC、Swift原本的风格,结合代码提示及纠错,极大地提高了开发效率。

缺点:
1.相关资料过少,环境配置需要花时间

Realm

优点:
1.跨平台:(可以在 iOS 和 Android 平台上共同使用),上手比较简单易用,文档比较完善;
2.可视化:Realm还提供了一个轻量级的数据库查看工具,在Mac Appstore 可以下载这个工具,开发者可以查看数据库当中的内容,执行简单的插入和删除数据的操作。
3.轻量级: 一般来说Realm比SQLite在硬盘上占用的空间更少
4.查询操作简单:一行代码根据查询目的来获取查询结果的数组。
5.数据库变更方便,Realm会自行监测新增加和需要移除的属性,然后更新硬盘上的数据库架构,Realm可以配置数据库版本,进行判断。


缺点:
1.基类只能继承自RLMObject ,不能自由继承;。
2.多线程访问时需要新建新的Realm对象,崩溃频发;
3.Realm没有自增属性。
4.Realm属性类型少,不支持集合类型。

FMDB

优点:
1.它基于SQLite封装,对于有SQLite和ObjC基础的开发者来说
2.简单易懂,可以直接上手;
缺点:
1.FMDB只是将SQLite的C接口封装成了ObjC接口,没有做太多别的优 化,即所谓的胶水代码(Glue Code)。
2.使用过程需要用大量的代码拼接SQL、拼装Object,并不方便。
3.容易通过SQL代码注入。
4.直接暴露字符串接口,让业务开发自己拼接字符串,取出数据后赋值给对应的Object. 这种方式过于简单粗暴。
3.性能测试

以下是性能测试的图表结果:


浅谈移动端数据库选型:WCDB、Realm和FMDB_第1张图片
数据库耗时性能测试.png
浅谈移动端数据库选型:WCDB、Realm和FMDB_第2张图片
数据库操作次数性能测试.png

你可能感兴趣的:(浅谈移动端数据库选型:WCDB、Realm和FMDB)