访问竞价网站拍卖图片 - 最佳方式?

时间:2013-10-14 15:09:42

标签: php

我正在创建一个迷你拍卖网站(没有商业/严肃,只是修改PHP)。每次拍卖都会有自己的图片由发布它的用户上传。

我试图以一种允许它尽可能扩大规模的方式创建它。

目前我有两个想法:

1)为每次拍卖创建一个子目录,并在其中存储图像。

  • 否定:很多子目录(性能?)

通过以下方式访问:/path/auction_id/image.png

2)在其中创建单个目录及所有拍卖图像,并通过其文件名访问它们。示例文件名:/path/auction_images/auction_id.png

  • 正面:全部在一个地方
  • 否定:单个目录中有许多文件

其中一种方式比另一方更好还是有更好的方法完全实现它?

由于

2 个答案:

答案 0 :(得分:0)

1号是你最好的选择。如果有的话,应该没有太大的性能差异。如果它可能实际上更快,好像你在1个目录中有很多文件,搜索它们也是一个性能问题。当它们被分成子目录时,它们很容易找到,易于清理,只是看起来更好的方式!

您还可以在项目发布时添加子目录,这样您可以在x天后轻松清理它们(cronjob或类似的东西)(保持磁盘使用率)。类似的东西:

uploads/{date}/{item_id}/{attachment_name (id + extension)}

答案 1 :(得分:0)

不同的文件系统处理具有不同性能级别的大量条目的目录。但是,恕我直言,避免使用包含大量文件的单个目录是个好主意。在这方面,你提出的两个解决方案实际上都有同样的问题 - 第一个解决方案有一个包含大量子目录条目的目录,而第二个解决方案有一个包含大量文件条目的目录。

相反,请尝试以下几行(假设auction_id为十位数字,左边用零填充):

第一级目录:ID的前两位数字 二级目录:下两位数 第三级目录:接下来的两位数 第四级目录(最低级别):下两个 文件名:完整ID

例如,ID 4739273912如下: /images/47/39/27/39/4739273912.jpg

这可以保证没有一个目录包含超过100个条目。

你可能想要修改这种方法来处理更大的ID#(虽然假设顺序分配你会长时间设置这个数量) - 或者更好的是,从随机生成开始拍卖ID分配的GUID。