写点什么

Android 上替代 SQLite 的选择:Realm

  • 2014-10-29
  • 本文字数:1219 字

    阅读完需:约 4 分钟

Realm 是一个开源的面向对象移动数据库。上个月,Realm 的 Android 版本发布了,比 iOS 版本晚了三个月。

我们之前已经报道过,Realm 没有使用 SQLite 作为它的引擎,而是用 C++ 写了自己的引擎,他们的目标是提供一个聚焦移动领域的 SQLite 的替代者。现在它的 Android 版本已经发布了。

当前 Android 上的 Realm 的 API 和 iOS 版本有点不同,这也反映了 Objective C 和 Java 的差别。Java 版本的 API 有更高的强类型(strong-typed)要求,也更连贯(fluent)。

比如,在 iOS 上,查询是通过静态方法如"objectWhere"来进行的,这将返回一个 RLMArray。这里的谓词都是基于字符串的。以下就是基于 Object C 的查询方法:

RLMArray *tanDogs = [Dog objectsWhere:@"color = 'tan' AND name BEGINSWITH 'B'"];另一方面,在 Android 下进行相同的查询却是这样的:

复制代码
RealmResults<Dog> tanDogs = realm.where(Dog.class)
.equalTo("color", "tan")
.beginsWith("name", "B")
.findAll();

当然,这有可能会被一种跨 iOS、Android 和其他平台的文本查询语言所替代。 Tim Anglade 是 Realm 的产品主管,他在一封邮件中指出,未来 API 的发展方向很大程度取决于社区的反馈。

虽然 Realm 是一个面向对象的数据库,但它和其他同类产品还是有一些明显的不同。Tim 解释道,当它用原生对象格式(native object format)来存储数据时,这些对象不会带着其语言特有的格式原封不动地存在磁盘上,而是通过 C++ 引擎存储在一个全局的表中。这使得 Realm 可以通过各种语言来访问数据,还包括各种即时查询(adhoc query)。

相比关系数据库,这种混合了对象和表的方式的优势在于它使图查询(graph query)更高效——甚至在相对老旧的智能手机上,查询深度嵌套的对象图也不会影响系统反应速度。Realm 发布的基准测试(benchmark)结果称,在普通操作上,Realm 的速度最快要达到原始的SQLite 的10 倍。

如果你现在有一个应用程序使用CoreData(iOS 上)或SQLite(Android 上),并且想迁移到Realm,肯定有一些事要做。这不是随便拿来就能用的——Tim 解释说,CoreData 和SQLite 倾向于使用一种非常标准化的形式,这种做法在Realm 上行不通。你最好从对象的角度重新思考你的模式(schema)和模型(model)。

一旦你修改了你的模式,使之适用于Realm,接下来把现有数据从CoreData/SQLite 迁移过来就简单了。只要配置一次迁移操作(从Realm 数据库版本0 到版本1),在迁移过程中,把你的SQLite 数据加载到Realm 对象中并保存它们。

或者,如果你的数据保存在远程服务器上,你可以从头新建Realm 数据库。

在采用Realm 之前,必须要考虑到它是一个最前沿的软件,这意味着将来它的API 有可能做出和以前不兼容的修改。

你可以通过 Android 版本的 Realm 来了解更多,或者查看 Github 上的代码

参考英文原文: Realm Brings SQLite Alternative to Android

2014-10-29 00:5711941
用户头像

发布了 77 篇内容, 共 36.7 次阅读, 收获喜欢 26 次。

关注

评论

发布
暂无评论
发现更多内容

供应行业怎么定义?行业也需要堡垒机吗?

行云管家

网络安全 堡垒机 供应行业

科大讯飞t20pro和t10区别 对比评测

妙龙

科大讯飞 学习机

Bettertouchtool for Mac(鼠标增强软件)

Mac相关知识分享

Mac软件 触控板增强工具

iToolab UnlockGo for mac(苹果设备解锁工具)使用教程

理理

mac视频下载器Downie下载vip会员视频教程分享

理理

小程序技术为什么被称为轻量级前端架构?

Geek_2305a8

仿冒网站横行,奥运会票务网站安全性遭质疑,SSL证书成关键

国科云

选择全周期项目管理系统的5大技巧

爱吃小舅的鱼

项目管理 PLM

科大讯飞学习机p30和t20pro 区别

妙龙

科大讯飞 学习机

TapData 信创数据源 | 国产信创数据库 PolarDB MySQL 数据同步指南,加速国产化进程,推进自主创新建设

tapdata

3D地球模拟软件Earth 3D for Mac

Mac相关知识分享

Mac软件 软件下载

Cinema 4D 2023常见问题:c4d 2023看不到新的加厚和对称对象怎么办?

理理

Fantastical for mac六项功能,让日程管理更加便捷!

理理

TextIn文档树引擎,助力RAG知识库问答检索召回能力提升

合合技术团队

科技 文档识别 PDF解析

24年湖北正规等保测评机构名称以及地址看这里!

行云管家

湖北 等保 等级测评

科大讯飞t20pro和X3 Pro选哪个

妙龙

科大讯飞 学习机

Instagram帖子如何隐藏喜欢和查看计数?

理理

工作中遇到的RSA问题,这里或许能找到答案

三七互娱后端技术团队

非对称加密 rsa

【YashanDB数据库】Yashandb表闪回业务表实践

YashanDB

yashandb 崖山数据库 崖山DB

如何更改Apple Watch上的表盘?(含苹果手表表盘素材)

理理

系统综合清理软件MacCleaner Pro for Mac

Mac相关知识分享

Mac清理软件 系统清理

Turbo Boost Switcher Pro for mac(cpu温度监测工具)

Mac相关知识分享

cpu

望繁信科技与金智维达成金融行业独家战略合作,共塑数字化转型新格局

望繁信科技

数字化转型 金融行业 流程挖掘 数字员工 流程智能

10个你可能不知道的Gmail技巧

理理

中文版Final Cut Pro (fcpx剪辑) 如何导出Alpha通道透明视频?绿幕抠图

理理

工作五年后,做技术还是做管理?

老张

技术管理 职场成长 技术专家

Mac mini 将迎来重大设计更新,将成为“苹果有史以来最小的电脑”

理理

CAD迷你看图 for Mac(MiniCAD) v4.4.5特别版

Mac相关知识分享

看图软件 CAD迷你看图

Rootstock 携手 Footprint Analytics:以数据洞察力加速 DeFi 生态系统发展

Footprint Analytics

比特币 区块链、

特权账号的“三生三世”:识别、监测、审计

极盾科技

数据安全 特权账号

office Mac版激活失败 怎么解决office激活失败的问题

理理

Android上替代SQLite的选择:Realm_移动_Roopesh Shenoy_InfoQ精选文章