【问题标题】:How to search in android sqlite database with speedy way?如何快速搜索 android sqlite 数据库?
【发布时间】:2016-11-02 17:34:04
【问题描述】:

我尝试使用以下代码在 sqlite 数据库中进行搜索:

    Cursor cusror;
     cursor=db.rawQuery("SELECT * FROM "+ Contactsnew.TABLE02 + " WHERE " 
            + Contactsnew.userid + " = " + Contactsnew.userId + " AND " +   
      Contactsnew.TITLE +
             " LIKE  '"+search.getText()+"%'");

它运行成功,但在庞大的数据库中运行缓慢。我在最后几天搜索了第三个库来使用我自己的数据库(从资产复制到 sqlite 数据库)。

我在this article 中找到了排名前五的库,我关注了每个库,但我发现每个数据库仅适用于自己创建的数据库,而不适用于现有数据库(已从资产复制)。

任何使用这些库的帮助并将其引用到我自己的数据库或任何其他库来帮助我。

谢谢

【问题讨论】:

标签: android android-sqlite android-database


【解决方案1】:

我建议创建准备好的语句并重复使用它们。有一个很好的answer on Stack Overflow 怎么做。如果不需要所有列,请考虑减少查询返回的列。此外,考虑为相关列创建索引。 test 是表名,id 是列名:

CREATE INDEX idx01 ON test(id);

作为最后的手段,可能值得尝试完全删除 LIKE 并在迭代光标时进行正则表达式测试。

【讨论】:

    【解决方案2】:

    您必须确保现有数据库与您添加的新数据库具有相同的数据格式。 可能是这里最简单的解决方案 - 编写一些“迁移实用程序”,它将提取现有数据并将其保存到新数据库中。 为了加快查询速度,将数据的不同方面存储到单独的表中(而不是单个表中的所有内容),或者,如果您的数据有很多依赖项,请尝试不使用表的 noSql 数据库(Realm)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 2015-12-01
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多