代码之家  ›  专栏  ›  技术社区  ›  MiffTheFox

为什么要基于哈希对自动生成的文件进行排序?

  •  1
  • MiffTheFox  · 技术社区  · 15 年前

    这是我在网站上看到的一种模式,允许用户上传类似图片的内容。

    例如,为什么 http://upload.wikimedia.org/wikipedia/commons/7/70/Example.png 而不是像 http://upload.wikimedia.org/wikipedia/commons/Example.png ?

    这是有实际的原因吗,还是仅仅是货物崇拜?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Michael Madsen    15 年前

    许多文件系统在同一目录中有数十万个文件时性能不太好—在目录中查找文件需要很长时间。

    为了避免这个问题,文件被分发到一个文件夹层次结构中。为了得到一个均匀的分布,可以散列文件名或内容(标识文件的内容),并使用散列的一部分来确定文件应该放在哪个文件夹中。这就是7/70的由来:它是通过两个步骤从散列的前缀派生出来的,创建了一个两级层次结构。因此,文件分布在256个不同的文件夹中,这意味着每个文件夹中的文件要少得多,从而提高了文件系统的性能。

        2
  •  0
  •   Chris B.    15 年前

    有两个明显的原因:

    • 避免在一个目录中加载太多文件
    • 它使得在不重命名原始文件的情况下,很容易避免文件名冲突。
    推荐文章