7

我目前正在用 JSP/Servlets 开发一个 Web 应用程序。
该应用程序允许用户为每个用户帐户上传图像文件。

存储图像的最佳方式是什么?
在您回答之前,请考虑以下我希望具备的功能;

  1. 我现在正在使用 MySQL,但可能会迁移到不同的数据库。

  2. 我可以将图像存储为平面文件,但我希望该admin帐户可以选择备份完整的数据库并稍后重新加载。理想情况下,备份/重新加载也应该适用于图像。(即使备份是从不同的物理机器完成的,并且重新加载是从不同的机器完成的)

  3. 使用 BLOB/CLOB 是解决问题 2 的一个选项。
    但是,如果我的数据库变得非常大怎么办?

4

3 回答 3

6

在您的情况下,我强烈建议您blob在数据库中有一个字段并将图像存储在其中。主要是因为这对他们来说是正确的地方。因此,制作一个 Servlet,从数据库中检索指定用户的图像。例如,/userimage?name=john

关于您的“尺寸/性能”问题:

  • 数据库(除其他外)用于存储和交换大量数据
    所以,他们是最好的选择

  • 即使您将它们存储在其他站点上,它们仍然会减少可用空间和性能。

  • 如果您真的想管理 LARGE 数据(>= 3TB,不是您的情况),那么您可以将它们存储在文件系统上并将文件名保存在数据库中。有关更多信息,请查看此问题

于 2011-04-30T13:34:18.067 回答
3

将它们存储在文件系统中。它更快更简单。通常,在访问图像时,您必须先将其保存到文件中,然后才能使用它。您可以使用第三方工具检查图像。您可以将 recordID 存储在文件名中,以防止图像/记录关联被破坏。

许多其他人也有同样的看法:http ://forums.asp.net/p/1512925/3610536.aspx

于 2011-04-30T13:43:48.003 回答
-2

只需将它们存储在数据库中......如果您的用户群“变得非常大”,您将有大量现金购买可以处理负载的完整数据库服务器(甚至是其中的一个农场),现在不会了你呢?

于 2011-04-30T13:35:30.960 回答