我正在从事一个需要在表格上存储位图的项目。这些位图用于数据适配器以显示在列表中。该表可能包含超过 1000 个图像。我目前不存储到文件的原因是因为我可以以多快的速度将图像读取和写入数据库。
我主要是想了解 SQLite 游标的局限性。游标是如何加载到内存中的?它将查询结果放在内存中还是创建某种类型的临时读/写文件?我不想遇到查询大型数据集导致设备内存不足的问题。
最佳答案
如果我记得的话,它会将尽可能多的结果缓存在内存中。它应该保持在 soft heap limit 以下, 通常。这是一个建议限制,因此它宁愿超过限制也不愿返回 SQL_NOMEM。
我不相信它会为任何缓存机制写入磁盘。只要每个图像都可以放入内存,并且它们不在索引中,就应该不是问题。
我不是 android 程序员,不管它值多少钱。其中一些可以定制。
作为背景,sqlite_step是默认库中的光标。我不知道 android 是否已经实现了它自己的机制。您可以在他们关于 dynamic memory allocation 的页面上找到一些一般信息。 .
关于android - SQLite 游标在内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376691/