Android数据库GreenDao和Realm的对比

本文对比了GreenDao和Realm在Android开发中的优缺点,重点展示了它们在数据库操作性能上的差异,推荐GreenDao在大多数场景下,但对高并发查询感兴趣的开发者可选Realm

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android开发的童鞋应该都知道,使用官方的SQLite数据库,可以满足我们大部分增删改查的需求,然而随着Android技术的逐步成长,你会慢慢发现SQLite越来越不能满足我们的需求。总结为以下主要几点:

  • 1、创表,增删改查需要些大量代码,开发效率极低
  • 2、需大量封装,测试繁琐。
  • 3、效率极低(当你使用了GreenDao||Realm你会发现它完全不能接受)。
  • 4、加密等操作需手动处理。

正因为SQLite的繁琐使用,Andorid也会随着JAVA 的脚步出现大量的ORM框架,类似于JAVA Web的Hibernate

解析主角GreenDao&Realm

以上框架我使用过GreenDao&Realm&ORMLite&Afinal,没使用过的我先暂不评价,最开始我准备通过这4个框架的对比为大家进行分析,然而当我写ORMLite的时候,发现其的ORM封装并没有什么大的作用,唯一让我觉得能夸赞一点的地方,ORMLite他不在需要去写表结构以及SQL语句,我们只需配置实体注解以及调用它的DAO进行数据库操作即可,相对于SQLite也仅仅只是这么点优点,仍然需要写大量的封装代码,这点其实已经很不愿意去使用它了,然而他的性能测试,使我完全放弃使用它,跟GreenDao&Realm完全不在一个层级上的,所以直接推荐大家不使用。至于Afinal,他里面还封装了很多其他的功能,也不是我们优选的数据库框架。

集成方式

  • GreenDao
apply plugin: 'org.greenrobot.greendao'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        implementation'org.greenrobot:greendao-gradle-plugin:3.1.0'
    }
}

dependencies {
    implementation'org.greenrobot:greendao:3.1.0'
}
  • Realm
buildscript {
    repositories {
        maven {
            url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
        }
    }
    dependencies {
        classpath "io.realm:realm-gradle-plugin:<version>-SNAPSHOT"
    }
}

repositories {
    maven {
        url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
    }
}

数据库操作(增删改查)

通过Demo使用GreenDao&Realm数据库对相同的数据进行1、10、100、1000、10000、100000条数据同时添加、删除、查询(id,name,age3个字段)观察其性能的真实对比,其它条件完全保持一致,仅计算数据库增删改查的时间。
通过记录数据取平均值,记录如下:

1条添加删除查询
GreenDao6ms7ms2ms
Realm5ms8ms1ms
10条添加删除查询
GreenDao6ms9ms2ms
Realm6ms11ms1ms
100条添加删除查询
GreenDao530ms11ms2ms
Realm15ms18ms1ms
1000条添加删除查询
GreenDao5400ms10ms11ms
Realm68ms150ms1ms
10000条添加删除查询
GreenDao55023ms13ms207ms
Realm800ms4500ms4ms

从这张表中体现出的现象:
在小量数据的查询与删除等操作中,两者的差距基本可以忽略不计,早超过同时插入、删除、查询1000条以上的数据分析得出。GreenDao在删除操作中,占明显优势,而Realm在添加与查询方面优于GreenDAO。

个人推荐

由于GreenDao在3.0.1后的使用极其方便,并且使用的习惯与拓展性、稳定性优于Realm,推荐使用GreenDao.
如果你的项目中对添加与查询操作要求极高的话,推荐使用Realm,但它目前相对不稳定,官方也在持续优化中,需留意官网并实时替换新版本。

  • 下边是1000条数据demo测试图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值