在我的Android应用程序中,我需要获取50,000个数据库条目(文本),并在活动开始时(in onCreate()
)与它们进行比较.我用最简单的方法做到这一点:我将整个表从db到光标.然而这种方式太迟钝了.有没有其他方法可以更有效地做到这一点?
编辑:该应用程序是"拼字游戏解决者",这就是为什么我不在WHERE
我的查询中使用子句(获取整个数据并将其与输入字母的组合进行比较).起初我正在使用一个包含完整可能单词的大表.现在我使用26张桌子.这减少了滞后,我在一个线程上进行数据库调用 - 这也解决了很多问题.它仍然有点滞后但更好.
总结并添加一点
EXPLAIN QUERY PLAN
http://www.sqlite.org/lang_explain.html运行查询分析并查找任何scan
操作,这些search
操作比操作慢得多.使用索引来避免scan
操作.onCreate()
,总是使用AsyncTask
a Handler
,在后台线程或其他非主线程上运行. 归档时间: |
|
查看次数: |
7073 次 |
最近记录: |