3

我正在开发一个价格比较网站,其中包含数百家商店和每家商店的数千张产品图片。

总共有 800 万张图像。

每张图片都有这个文件名格式:StoreID-productID.jpg

每个图像大小小于 10KB。平均 7KB。

该网站是用php和mysql开发的。

我有linux专用服务器。

我有很多磁盘空间。所以,这不是问题。

我的问题是:

  1. 我应该将所有商店的所有图像保存在一个文件夹中吗?

因此,800 万张图像将位于一个文件夹中。

它会影响检索它们的效率吗?

目前我正在使用这种方法,想知道这种方法是否有任何缺点。

  1. 我应该为每个商店保留一个文件夹并将该商店的图像保存在该文件夹中吗?

像:

images/storeID1/
images/storeID2/
....

请建议。谢谢

4

2 回答 2

4

取决于您使用的文件系统。(EXT3、NTFS、FAT 等)。

每个都有不同的文件夹大小限制和性能特征。

对于 800 万个文件,将尽可能多的文件夹分开是最安全的。然后,如果遇到扩展问题,您可以选择使它们成为不同的物理驱动器。

如果您使用的是 Linux,则可以轻松地在现有文件夹结构中安装另一个驱动器。您也可以使用符号链接。

images/Store1/FILES...
images/Store2 ---> /mount/SDA01/Store2/ (symbolic link to a separate drive)

限制

有关不同文件系统限制的更多详细信息,请参阅此超级用户问题:https ://superuser.com/questions/446282/max-files-per-directory-on-ntfs-vol-vs-fat32

请注意,这些是系统可以处理的绝对限制。这些限制上限的性能肯定会受到影响。

于 2012-11-21T15:30:13.017 回答
3

在我最近的一个项目中,随着时间的推移,我不得不存储大量图像。我们决定最好的办法是将它们分成编号的目录,每个目录中有一定数量的图像。我们的数据库将存储与之关联的项目的文件名、目录、外键、允许我们禁用它而无需删除内容的标志以及下载日期。从那以后效果很好。

于 2012-11-21T15:32:24.310 回答