1

我即将创建一个基于用户的网站,并且必须为每个用户存储照片、文档和其他数据。

如果我拿一个像 1 000 000 000 个用户这样的愚蠢数字,我相信一个包含 1 000 000 000 个用户的文件夹不会是世界上最快的事情!所以我想创造类似的东西

第一级:[az] 第二级:[az] 第三级:[az]

因此,鲍比将在 /b/o/b/by

但这也意味着它不会被平均传播,因为以 az 开头的用户很少,而以 am,s,l 开头的用户会更多...

所以我正在考虑使用诸如“000000000001”、“000000000001”等用户ID...

第一级:[000-999] 第二级:[000-999] 第三级:[000-999]

因此用户 000000000001 的数据将存储在 /data/000/000/000/001 中,那么我将确保每个级别最多有 1000 个文件夹。

大家怎么看,我该做什么,不该做什么?

服务器将在raid 1 上运行带有EXT3 的Centos 5.4,如果I/O 太糟糕我可能会选择raid 10。

4

1 回答 1

0

散列函数提供了一种在易于搜索的结构中分布大量数据的方法。

请参阅此相关问题:为什么使用散列来为大量文件创建路径名?

并尝试查看 Google 结果中的Directory Hashing

于 2010-04-16T19:10:25.233 回答