【问题标题】:Android: caching SQLite entities in memoryAndroid:在内存中缓存 SQLite 实体
【发布时间】:2018-03-07 18:10:39
【问题描述】:

在 Android 中读取/写入 SQLite 数据库时,我应该使用什么方法来最小化磁盘 i/o?像带有 WeakReferences 的 ConcurrentHashMap 之类的东西? Caffeine? GuavaCache?

我应该在 GreenDaoDBFlowORMLite 等 ORM 中使用内置缓存吗?在清除这些缓存时,文档非常模糊......我应该什么时候清除它们?我应该吗?

我尝试在 ORMLite 中启用缓存,但出现了错误:级联删除/插入实体后出现空值而不是空的外部集合...

那么最佳做法是什么?也许根本不使用缓存,而只是异步读取/写入数据库以确保数据新鲜?

【问题讨论】:

    标签: android sqlite caching greendao dbflow


    【解决方案1】:

    您可以使用Lru cache 包装对数据库的读取,以减少内存占用(因为它不会无限增长)。但是,如果记录被更新/从存储中删除,您将需要使记录无效。

    短视频介绍here

    【讨论】:

      猜你喜欢
      • 2018-10-29
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 2020-01-23
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      相关资源
      最近更新 更多