【问题标题】:Room Select Query Taking too much time房间选择查询花费太多时间
【发布时间】:2021-09-29 04:12:51
【问题描述】:

我已将本地联系人保存到数据库中,该数据库有 2000 行。我正在使用选择查询来选择所有联系人,但获取列表需要 6 到 8 秒

@Query("SELECT * FROM Contacts")
fun getLiveLocalContactList(): LiveData<List<LocalContactsUserEntity>>

这里是实体

@Entity(tableName = "Contacts")
data class LocalContactsUserEntity(
    @PrimaryKey(autoGenerate = false)
    val mobileNumber: String,
    var name: String
){
    override fun toString(): String {
        return Gson().toJson(this)
    }
}

有什么解决办法还是我做错了什么?

更新此问题

我已经检查过数据库是否尽快返回数据,但加载数据需要时间的是 RecyclerView。如何在我们的应用中将庞大的数据集设置为 RecyclerView Like ContactList。

【问题讨论】:

  • 尝试阅读这个问题:stackoverflow.com/questions/67575425/…
  • 这个问题与我的情况无关。我只是选择表的所有行,不需要其他逻辑。如果行数小于 ~400,它可以正常工作

标签: android


【解决方案1】:

尝试仅添加所需的列,而不是 Select *。例如:

@Query("SELECT id,name,address FROM Contacts")

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
  • 表中只有两列,我需要这两列
【解决方案2】:

最后,

我已经找到了延迟的真正原因。

我在 XML 部分做错了。

我已经在 NestedScrollView 中添加了 RecyclerView 所以设置数据到 RecyclerView 需要时间。

【讨论】:

    猜你喜欢
    • 2022-06-22
    • 1970-01-01
    • 2018-01-08
    • 2019-11-14
    • 2012-09-03
    • 2013-07-11
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多