【发布时间】:2012-05-09 17:45:32
【问题描述】:
我正在做一个需要在表格上存储位图的项目。这些位图用于数据适配器以显示在列表中。该表可能包含超过 1000 个图像。我目前不存储到文件的原因是因为我可以将图像读取和写入数据库的速度有多快。
我真正要寻找的是了解 SQLite 游标的局限性。光标是如何加载到内存中的?它将查询结果放在内存中还是创建某种类型的临时读/写文件?我不想遇到查询大型数据集导致设备内存不足的问题。
【问题讨论】:
-
有CursorWindow,它似乎用于在您
moveToXyz时仅加载部分查询。数据应直接来自数据库。 -
“我正在做一个需要在表格上存储位图的项目。” ——咳。 “这张表可能包含超过 1000 张图像。” ——更恶心。 “我目前不存储到文件的原因是因为我可以将图像读取和写入数据库的速度有多快。” -- 根据定义,文件将同样快或更快,因为 SQLite 必须将其内容存储在文件中。
-
zapl 感谢您提供的信息。 @CommonsWare 不确定 ick 是什么意思:P 我认为从文件中读取似乎应该比从 db 读取更快或更快。除了如何使用游标之外,我对游标了解不多……但是 SQLite 没有高度优化您从数据中读取的方式吗?我的意思是多次从文件中读取图像数据似乎比从光标中读取要慢得多。
-
@Jona:那是因为
Cursor将内容保存在内存中。您也可以通过读取文件的结果来做到这一点。
标签: android sqlite database-cursor