我即将创建一个基于用户的网站,并且必须为每个用户存储照片,文档和其他数据。
如果我拿一个愚蠢的数字,如1亿用户,我相信一个拥有1 000 000 000的文件夹将不会是世界上最快的!所以我想创造像
这样的东西第1级:[a-z] 第二级:[a-z] 第3级:[a-z]
因此鲍比将在/ b / o / b / by
但这也意味着它不会被公平地传播,因为很少有用户以z开头,还有更多用m,s,l ......
所以我在考虑使用用户ID 例如“000000000001”,“000000000001”等...
第1级:[000-999] 第二级:[000-999] 第3级:[000-999]
因此,用户000000000001的数据将存储在/ data / 000 / 000/000/001中 那么我肯定每个级别最多有1000个文件夹。
你们怎么看待它,我该做什么或不做什么?
如果I / O太糟糕了,服务器将在raid 1上使用EXT3运行Centos 5.4 我可能会去搜查一次。
答案 0 :(得分:0)
哈希函数提供了一种在易于搜索的结构中分发大量数据的方法。
请参阅此相关问题:Why use hashing to create pathnames for large collections of files?
并尝试浏览Directory Hashing的Google搜索结果。