【问题标题】:Accessing bidding site auction images - Best way?访问投标网站拍卖图像 - 最佳方式?
【发布时间】:2013-10-14 23:20:37
【问题描述】:

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

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

我目前有两个想法:

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

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

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

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

  • 正面:集中在一处
  • 否定:单个目录中有很多很多文件

其中一种方法比另一种更好还是有更好的方法?

谢谢

【问题讨论】:

    标签: php


    【解决方案1】:

    1 号是您的最佳选择。如果有的话,根本不应该有太大的性能差异。如果有的话,它实际上可能会更快,就好像您在 1 个目录中有很多文件一样,搜索它们也是一个性能问题。当它们被拆分为子目录时,它们很容易找到,也很容易清理,这似乎是一种更好的方法!

    您还可以添加项目发布时间的子目录,这样您就可以在 x 天后非常轻松地清理它们(cronjob 或类似的东西)(降低磁盘使用率)。比如:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      您可能希望修改此方法以处理更大的 ID #(尽管您会在很长一段时间内设置该数量,假设顺序分配) - 或者更好的是,从随机生成的开始拍卖 ID 分配的 GUID。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-26
        • 1970-01-01
        • 1970-01-01
        • 2016-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多