【问题标题】:Storing very small audio/image files in SQLite database via BLOBs?通过 BLOB 在 SQLite 数据库中存储非常小的音频/图像文件?
【发布时间】:2016-12-11 02:11:28
【问题描述】:

背景信息

我是 Android 开发的新手,我正在为我的客户创建一个 Android 应用程序,并且我正在尝试找出为我的应用程序存储大量音频和图像文件的最佳方法。该方法需要满足以下要求:

1) 允许应用用户将自己的图像和音频文件添加到应用(使用 SQLite 数据库)。这可能意味着将存储数千个音频和图像文件,但同样,它们不大于 0.35 mb,并且大多数小于 0.1 mb。用户可能会上传数十张图像和四分之一的音频文件的大量文件。

2) 允许用户将他们的本地数据与服务器上的 SQL 数据库同步,以便应用程序的用户可以在不同位置上传、下载和删除图像和音频文件(除了分配的其他数据)地点。

我知道将文件路径存储在 SQLite 数据库中几乎总是比将文件存储为 BLOBS 更好,但是,就像在这些问题中一样,BLOB vs. file path storage, Storing small BLOBs in a Database, 在某些情况下,将文件直接存储在数据库中更合适,尤其是当涉及的文件非常小时,因为它们在我的应用程序中。我的应用程序中的所有文件都不大于 350 K/b。

我的问题是,在处理非常小的文件时(我的图像/音频文件都没有超过 350 k/b,而且大多数都在 0 到 100 k/b 的范围内),但是很多当用户需要将文件上传到本地 SQLite 数据库或用户需要将本地 SQLite 数据库同步到远程服务器?

只要安装和同步时间不超过 45 分钟,应用程序的冗长安装时间以及与远程数据库的初始同步都不是问题。

【问题讨论】:

    标签: database image sqlite audio blob


    【解决方案1】:

    不要相信一些随机网站告诉你的一切。

    在某些tests for reading internal vs. external blobs 中,对于非常小的文件大小 (

    由于事务/同步开销,写入 blob 的效率往往低于写入文件。

    这一切如何转化为您的 Android 设备需要您自己进行测试。

    【讨论】:

    • 我只是想跟进,这是一个很好的答案;我已经实现了一个将相关文件系统存储为 BLOB 的存储系统。对于具有较大文件大小的系统,这绝对不是最佳选择,但在我的情况下,它确实是唯一可用的选项,因为一切都必须如此动态。该应用程序已部署,我的用户没有遇到任何问题。
    猜你喜欢
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2021-11-16
    相关资源
    最近更新 更多