照片存储的最佳实践

Best practices for photo storage

我想制作一个 Android 具有与 Instagram 相同外观的应用程序,这意味着每个个人资料都有一个照片库。

我的问题是关于存储和检索这些照片。我想知道在数据库 (MySQL) 中存储照片的最佳做法是什么,更准确地说:

我认为最好的做法不是将照片存储在数据库中。 在数据库中,您将照片示例 url 的 link/location 存储到照片中。 关于较小尺寸的照片,这取决于您想要实现的目标,因为现在您需要更多 space 来支付费用,而且可能需要更少的带宽,因为您可以放置​​缩略图并让它仅在用户单击时加载原始尺寸。所以这完全取决于你想要实现什么以及如何实现

存储图像的最佳做法是将它们简单地缓存为文件,而不是将它们保存在数据库中。您可以将它们保存为 sql 数据库中的 blob,但它们应该小于 32px x 32px 以使事情顺利进行。其他一切都应该保存为文件。让我举一个 WhatsApp 的例子。 WhatApp 将大部分图像缓存为文件,仅将像素化缩略图保存在数据库中。

在数据库中保存图像看起来有点过分,没有必要。 保存在磁盘上应该没问题。

虽然 你应该专注于你的业务逻辑 并将其留给图像库来完成这些工作并在内存和性能方面做得最好。

一些著名的库是:

几乎每个图书馆都会为您做很多事情,例如:

  • 在内存缓存中(LRU Cache - 这样 UI 线程就不会被阻止执行 I/O 从磁盘操作
  • 磁盘缓存 - 保存图像以供进一步使用 应用程序会话,当内存缓存达到其限制时,它也必须是 从中逐出。,您可以指定磁盘缓存大小。
  • 各种图像缩放策略
  • 图像变换
  • 正在清理位图以释放内存
  • 后台线程上的网络操作
  • 后台线程管理和等等..

我的建议是使用其中一个图片库