在我的网站上,用户有文件,因此当每个用户注册时,我会为他们创建一个文件夹。
例如
/用户数据/用户ID
如果网站发展壮大,并且我有数千名用户,那么我可能会在一个文件夹中拥有太多的用户文件夹,因此我决定将它们拆分开来。
例如
/userdata/1/USERID(前一千名用户)
/userdata/2/USERID(第二千个用户)
我的问题是我应该在一个子文件夹中放多少个文件夹?每个子文件夹中放 1000 个文件夹是个好主意吗?更多?更少?只是想确保一切顺利进行。
答案1
我总是遵循使用 ext2/ext3 时最大容量为 ~1000 的规则。我怀疑文件系统的选择可能会影响您的选择。
ext3 中的绝对限制是 ~32k。请查看 Wikipedia 上的所有详细信息:http://en.wikipedia.org/wiki/Ext3
对于目录的哈希算法,我建议使用 ID 的最后一位数字。如果您计算$id % 10
并使用该值,效果会很好。这样,您就可以获得均匀的分布。
答案2
这主要取决于您使用的文件系统。
你可能会发现使用模式比按任意数字拆分更容易。例如,CPAN 使用
U/US/USERNAME
即首字母 / 前两个字母 / 完整用户名
答案3
如果您的用户名不经常更改,CPAN 思维模式可能仍然有优势。通常,最好让 90% 的用户知道在哪里深入查找他们的内容,而不是搜索 N 个文件结构来查找 USERID。