SQLite光标如何在内部工作?

我正在开发一个需要在桌面上存储位图的项目。 这些位图用于数据适配器以在列表中显示。 该表格可能包含超过1000个图像。 我目前没有存储到文件的原因是因为我可以读取和写入图像的速度有多快。

我最基本的要求是了解SQLite游标的限制。 游标如何加载到内存中? 它将查询结果放在内存中还是创build一些types的临时读/写文件? 我不想遇到查询大数据集导致设备内存不足的问题。

Solutions Collecting From Web of "SQLite光标如何在内部工作?"

如果我记得,它会保持尽可能多的结果caching在内存中。 它通常应该保持在软堆下限以下。 这是一个build议限制,所以它会比返回SQL_NOMEM更喜欢超出限制。

我不相信它写入磁盘的任何caching机制。 只要每张图片都适合内存,而且不在索引中,这应该不成问题。

我不是一个Android程序员,因为它是值得的。 其中一些东西可能已经定制。

作为背景, sqlite_step是默认库中的游标。 我不知道如果Android已经实现了它自己的机制。 你可以在他们的页面上find一些关于dynamic内存分配的一般信息。

这是我做过的一个旧post。 我的解决scheme是将图像保存到文件并将path保存到数据库表中。 这是更干净,似乎更快。

将大型二进制数据保存到表中似乎不是正确的做法。 我没有详细的信息,为什么不是一个好主意,但这只是我从一点点的研究中感受到的。