【问题标题】:Why does my Sqlite database get really slow when one table gets a lot of records?当一张表有很多记录时,为什么我的 Sqlite 数据库变得非常慢?
【发布时间】:2018-08-21 21:13:29
【问题描述】:

我在 Android 上有一个 Sqlite 数据库,如果我将 2000 条记录放在一个表中,所有其他表都会变得非常慢。

一个表中有 2000 条记录,我可以在一个有 0 条记录的表上运行“SELECT COUNT(*)”,它可能需要 5 到 30 秒。

【问题讨论】:

  • 您是否有另一个线程/进程同时写入数据库?

标签: android sqlite


【解决方案1】:

这可能有很多原因。通常的原因是:

  1. 写得不好的查询
  2. 不使用主键,假设表上什至存在主键
  3. 设计不佳的数据模型(表结构)
  4. 缺少索引

IMO,您的情况可能是缺少索引。检查您是否为表/行编制了索引。

【讨论】:

    【解决方案2】:

    "SELECT COUNT( * )", char ' * ' 需要数据库在sql执行时提取每个字段。

    作为附加建议,您可以在“count()”中使用主键。

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      相关资源
      最近更新 更多