如何快速搜索android sqlite数据库?

How to search in android sqlite database with speedy way?

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

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

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

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

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

谢谢

您必须确保现有数据库与您添加的新数据库具有相同的数据格式。 可能是这里最简单的解决方案 - 写一些 'migration utility',这将提取现有数据并将其保存到新数据库中。 为了加快查询速度,将数据的不同方面存储到单独的 table 中(不是单个 table 中的所有内容),或者,如果您的数据有很多依赖项,请尝试不使用 [=13 的 noSql 数据库(领域) =]s.

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

CREATE INDEX idx01 ON test(id);

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