Android开发经验谈Android开发Android技术知识

大家好,给大家介绍一下,我的新移动端数据库Realm

2017-11-14  本文已影响140人  卡路fly

概述

是一个跨平台移动数据库引擎,支持iOS、OS X(Objective‑C和Swift)以及Android。
Realm相较于SQLite:

  1. 性能相对其他移动端数据库性能更优。
  2. 使用相对于SQLite,用法更加简单。
  3. 据说Realm的目标是为了代替 CoreData 和 SQLite 数据库

特性

- 性能高

一秒钟查询遍历20万条数据的次数 android对比

- 简单易用

Realm数据直接暴露成类对象,通过对象查询,避免了ORM映射的维护和性能问题。另外,Realm努力保持API只包括4个基础类(Object, Array, Results and Realms)和一个工具类(Migrations),用户可以凭直觉使用,学习数小时就能在您的App中使用realm
而SQLite,自2000年发布第一个版本,至今已17年。以当今的角度来看,它的编程抽象程度非常低。

- Zero-Copy & LazyLoad

通常数据库查询,先建立连接,然后查询数据库,将查询结果反序列化成实际的对象。而Realm跳过了整个拷贝数据到内存的过程,称之为zero-copy。做到这点是因为文件始终是内存映射的,无论文件是或否在内存当中,访问的都是Realm对象,无需执行任何反序列化操作。
这样就带来了一个问题,难道数据全加载到内存里了?所以这里懒加载应运而生,比如在查询到一组数据后,只有当你真正访问对象的时候才真正加载进来。

- 现代数据库的特性

配置

buildscript {
 repositories {
     jcenter()
 }
 dependencies {
     classpath "io.realm:realm-gradle-plugin:2.1.1"
 }
}
apply plugin: 'realm-android'

资料

  1. realm官网
  2. Android之Realm
上一篇下一篇

猜你喜欢

热点阅读