我有一个PHP项目正在为客户端构建,我必须将他们的旧系统和数据实质上转换为我的“更好”的系统。我遇到的问题是它们用于存储PDF的旧文件结构。
当前,文件夹系统由其名字,子文件夹中的姓氏配置,最后四个社交名附加在末尾,以防止重复。
Files > A > B > Alan_Bob_1234
因为他们的系统非常不兼容,我觉得我应该更改它,但是需要有关Linux服务器上新文件系统结构的建议。
我首先想到的是只拥有一个包含每个“申请人”的唯一标识的文件夹。
Files > 0cowxuRoGj
[我担心的是,我有14,000多名申请人要为其传输文件,并且这个数字每天都将继续增长。
我的问题:在“文件”文件夹中拥有14,000 +个文件夹并不断增长的文件夹是否会增加服务器的处理时间,以至于降低搜索的响应时间?实施像原始设计这样的子文件夹系统来解决此问题是否更可取?
无论我需要从文件夹名称中删除社交名。如果我需要对这些申请人进行子文件夹分类,那么对子文件夹名称来说可能是个不错的选择,因为我不想依赖保持不变的名字和姓氏,因为在他们的当前系统中,名称导致旧文件丢失,并创建新文件夹。
每个目录的最大文件数取决于所使用的文件系统,文件系统的创建方式,内核版本以及其他一些可能。如果您将ext4与最新的内核一起使用,则每个目录中数百万个文件应该不会造成问题。但是为了安全起见,更建议携带大量列表。
如果您的“ UNIQUE ID”不是序列号,而是分布良好的随机数,简单的解决方法是:
Files > 0 > cowxuRoGj
这会将您的文件列表划分为62个目录,这使您可以在生命周期中可能遇到的任何文件系统上存储数十万个文件。