有没有有效的方法使Android数据库查询更快?

在我的Android应用程序中,我需要获取50,000个数据库条目(文本),并在活动开始时(在onCreate()中)将它们与值进行比较.我用最简单的方法做到这一点:我将整个表从db到光标.然而这种方式太迟钝了.有没有其他方法可以更有效地做到这一点?

编辑:该应用程序是“拼字游戏求解器”,这就是我在查询中不使用WHERE子句的原因(获取整个数据并将其与输入字母的组合进行比较).起初我正在使用一个包含完整可能单词的大表.现在我使用26张桌子.这减少了滞后,我在一个线程上进行数据库调用 – 这也解决了很多问题.它仍然有点滞后但更好.

最佳答案
总结并添加一点

>让数据库完成搜索工作,在执行查询时使用WHERE子句!
>如果where子句不在主键列或唯一列上运行,则应为该列创建索引.以下是有关如何执行此操作的一些信息:http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html#indexes
> Google说:“使用问号参数标记,例如’phone =?’而不是选择参数中的显式值,以便只有那些值不同的查询才会被识别为缓存目的.“
>使用EXPLAIN QUERY PLAN http://www.sqlite.org/lang_explain.html运行查询分析并查找任何扫描操作,这些操作比搜索操作慢得多.使用索引来避免扫描操作.
>不要在onCreate()中执行任何耗时的任务,总是使用AsyncTask,在后台线程或其他非主线程上运行的Handler.
>如果您需要进行全文搜索,请阅读:http://www.sqlite.org/fts3.html

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...