1

我们正在 ASP.NET 3.5 中创建一个社交网站。我们正在为图像创建用户特定的幻灯片。假设有 100 万用户,每个用户都会保存一些图像,现在我们将图像名称保存在数据库中。

因此,在获取下一张图像时,我们必须先到 DB,然后再到特定图像的 Image 文件夹,然后将响应发送给用户。

取而代之的是,如果我们创建用户特定文件夹并将图像保存在该文件夹中,然后查询特定用户文件夹以获取图像,这将是一个实用的解决方案,还是我们应该坚持使用上述传统数据库?

在 Web 应用程序中创建 100 万个文件夹好吗?

哪种方法在获取图像时更快(从文件夹或 SQL Server)?(我们没有将图像保存在数据库中)

感谢您。

4

1 回答 1

1

如果您希望您的系统具有可扩展性,您的 Web 应用程序不应该知道图像是如何物理存储的,或者图像的元数据是如何存储的。

有一百万用户存储图像,您的存储将需要成为一个子系统。它需要透明的故障转移、缓存策略。它的内部逻辑不应该从其他系统中得知。这将允许你调整它,改变它,增强它。

你应该有两个子系统:

  • 一种用于处理图像元数据的服务接口,用于创建、更新和检索图像元数据(所有者/日期/标签/评论/...)您可以使用任何类型的数据库来处理此问题。但其他系统应该只看到一项服务。
  • 一个用于处理图像二进制流(用于存储流,用于检索给定文件 ID 的流)您可以使用任何您想要的东西,从文件系统到数据库或云解决方案,它肯定是这些的混合。如上所述,其他系统应该只看到一个服务。

无论如何,要回答您的问题,拥有一百万个文件夹将是非常无效的(就像一个拥有一亿张图像的文件夹一样)但是如果您将其隐藏在服务后面,您会给自己时间在找到更好的解决方案之前找到一个更好的解决方案百万用户)

于 2013-03-22T14:32:32.457 回答