Android sqlite / BLOB 性能问题

2023-12-01

自从我将数据从 ArrayList 移动到 Android 上的 sqlite 数据库后,我的性能出现了严重下降。没有打开的游标可能会导致这种情况,因此我怀疑问题出在我存储在 BLOB 字段中的图像。

该应用程序创建Cards有一个字段卡位图创建时会填充位图。

谁能根据他们的经验告诉我哪种解决方案性能更高:

  1. 卡位图保存对 SD 卡上文件的引用(路径),该文件将在创建时绘制。只有路径存储在数据库中。
  2. 卡位图持有一个物体(BitmapFactory.decodeStream(imageStream,null,null)), 在哪里图像流被读作字节数组输入流从相应的数据库字段。

任何的意见都将会有帮助。谢谢!


我还没有评论答案的声誉,所以我将添加我的 2cts 作为答案,请原谅我。

我一直在寻找类似问题的答案,但我认为当前的答案并不令人满意,因为如果您询问 SQLite.org,他们会告诉您这取决于 blob 大小和页面大小。

他们做了一个基准测试(尽管不是在 Android 上),结果表明,对于小 Blob(最多 20kB),在 SQLite 中存储 Blob 比存储在单独的文件中更快。 但是,对于大于 100kB 的 blob,性能下降很大,最好按照您 ( user370605 ) 的建议将 blob 存储在单独的文件中。 看http://www.sqlite.org/intern-v-extern-blob.html

我会考虑有关 Android 的未回答的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android sqlite / BLOB 性能问题 的相关文章

随机推荐