android - SQLite 游标在内部是如何工作的?

标签 android sqlite database-cursor

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

我主要是想了解 SQLite 游标的局限性。游标是如何加载到内存中的?它将查询结果放在内存中还是创建某种类型的临时读/写文件?我不想遇到查询大型数据集导致设备内存不足的问题。

最佳答案

如果我记得的话,它会将尽可能多的结果缓存在内存中。它应该保持在 soft heap limit 以下, 通常。这是一个建议限制,因此它宁愿超过限制也不愿返回 SQL_NOMEM。

我不相信它会为任何缓存机制写入磁盘。只要每个图像都可以放入内存,并且它们不在索引中,就应该不是问题。

我不是 android 程序员,不管它值多少钱。其中一些可以定制。

作为背景,sqlite_step是默认库中的光标。我不知道 android 是否已经实现了它自己的机制。您可以在他们关于 dynamic memory allocation 的页面上找到一些一般信息。 .

关于android - SQLite 游标在内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376691/

相关文章:

php - 在 Android 中对 Json 输出进行排序

java - 无效的可绘制标签 vector - appcompat-v7 :24. 1.1

Rails 迁移过程中默认十进制值的 MySQL 错误

javascript - 仅更新 Put Restify + SQLite3 上的某些字段

python - 将pyodbc游标结果输出为python字典

android - 如果用户选择以前的日期和时间,如何禁用确定按钮?

android - 在 Android 中定位 subview

android - 在外部存储上安装应用程序。数据库会发生什么?

Oracle PLSQL - 在不存在的表上声明游标

sql - 如何在 SQL 查询中使用排序方式实现 GraphQL 游标