与从大型数据库中选择所有行以填充ListView相关的性能问题

时间:2015-01-06 23:17:11

标签: android mysql listview

如果一个应用程序有一个包含大量行的本地数据库(我想的是数百或数千行,但为了参数,我们要说一百万或几十亿),将返回sql查询中的所有行到光标并使用它来填充ListView会对性能产生负面影响吗?

请注意:(1)我不是在谈论返回所有列,这将在这里讨论:

另外(2),我不是在谈论与创建太多视图相关的性能问题。我理解回收视图的重要性,如下所述:

而且(3),我不是在谈论从一个关注慢速网络的远程服务器获取数据。该应用程序拥有自己的本地数据库。

所以基本上我问的是,游标适配器是否内置任何内容以继续查询数据库,或者是否一次性返回所有数据。也就是说,我应该一次返回100行,然后在用户滚动到最后一行时重新查询数据库中的下一行100行吗?

在我的特定情况下,我正在制作消息传递应用程序,用于保存所有先前发送的消息的历史记录。用户可以在ListView中查看所有已发送的消息。

1 个答案:

答案 0 :(得分:0)

请仔细阅读此链接(答案),了解尝试从表格中获取大量行的一些可能的性能问题。

Android SQLite and huge data sets

另外,我建议在部分中检索结果并稍后使用cursorjoiner。这是一个关于如何使用它的一个很好的例子。

http://chariotsolutions.com/blog/post/android-advanced-cursors/