我正在开发一个价格比较网站,每个商店都有数百家商店和数千种产品图片。
总共有800万张图片。
每张图片都有以下文件名格式:StoreID-productID.jpg
每个图像尺寸小于10KB。平均7KB。
该网站是使用php和mysql开发的。
我有linux专用服务器。
我有很多磁盘空间。所以,这不是问题。
我的问题是:
因此,800万张图片将放在一个文件夹中。
它会影响检索它们的效率吗?
目前我正在使用这种方法,并想知道这种方法是否有任何缺点。
喜欢:
images/storeID1/
images/storeID2/
....
请建议。 谢谢
答案 0 :(得分:3)
取决于您使用的文件系统。 (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
请注意,这些是系统可以处理的绝对限制。在这些限制的上限下的表现肯定会受到影响。
答案 1 :(得分:1)
在我最近的一个项目中,随着时间的推移我不得不存储大量图像。我们决定最好的办法是将它们分成带有每个目录中一定数量图像的编号目录。我们的数据库将存储文件名,目录,与之关联的项目的外键,允许我们禁用它的标志,无需去除和删除内容,以及下载日期。从那以后它运作得很好。