【问题标题】:Is it a bad idea to store SQLite Cursor in Android?在 Android 中存储 SQLite 游标是一个坏主意吗?
【发布时间】:2012-02-28 00:13:07
【问题描述】:

我正在尝试在 Android 上实现一个字典应用程序。当用户在 EditText 中输入一个字母(或删除一个字母)时,应用程序会查询数据库并显示以 EditText 中的文本开头的所有条目。由于我使用的数据库包含超过 80000 行,因此查询的性能不如我想要的那么好。但是,当用户从 EditText 中删除字符时,就会出现真正的问题。因此,我想将光标对象存储在堆栈中。当用户删除一个字符时,应用程序从堆栈中弹出前一个光标并使用它。存储从 SQLite 查询返回的 Cursor 对象是不是一个坏主意?

【问题讨论】:

    标签: android performance sqlite cursor


    【解决方案1】:

    SQL 数据库可能根本不是用于此目的的正确工具,因为使用“like”的查询在关系数据库中并不是真正的性能。如果您通过为每个条目存储(和索引)前缀来非规范化数据,您可能会获得更好的性能。并且不要忘记添加分数,以优先考虑条目(例如,如果选择条目,则给它更高的分数)

    【讨论】:

      【解决方案2】:

      在您的情况下,我会说存储这么多游标是个坏主意。游标对象本身包含查询的所有结果。

      【讨论】:

        【解决方案3】:

        如果您使用AutoCompleteTextView,则已经为您提供了此功能。我建议你看看Auto Complete tutorial

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-18
          • 2015-08-31
          • 2016-03-05
          • 2015-07-20
          • 1970-01-01
          相关资源
          最近更新 更多