Php 在Linux中处理大量文件夹,是提高效率的最佳结构

Php 在Linux中处理大量文件夹,是提高效率的最佳结构,php,linux,filesystems,Php,Linux,Filesystems,我有一个PHP项目,我正在为一个客户构建,我必须将他们的旧系统和数据转换为我的“更好”系统。我遇到的问题是它们用于存储PDF的旧文件结构 目前,文件夹系统是按其名字、子文件夹中的姓氏进行配置的,最后4个社交链接附加到末尾,我认为这是为了防止重复 Files > A > B > Alan_Bob_1234 因为他们的系统非常不兼容,我觉得我应该改变这一点,但需要关于Linux服务器上新文件系统结构的建议 我的第一个想法就是拥有一个文件夹,其中包含每个“申请者”的唯一ID 我在这

我有一个PHP项目,我正在为一个客户构建,我必须将他们的旧系统和数据转换为我的“更好”系统。我遇到的问题是它们用于存储PDF的旧文件结构

目前,文件夹系统是按其名字、子文件夹中的姓氏进行配置的,最后4个社交链接附加到末尾,我认为这是为了防止重复

Files > A > B > Alan_Bob_1234
因为他们的系统非常不兼容,我觉得我应该改变这一点,但需要关于Linux服务器上新文件系统结构的建议

我的第一个想法就是拥有一个文件夹,其中包含每个“申请者”的唯一ID

我在这里担心的是,我有14000多名申请者需要转移文件,这个数字将继续每天增长

我的问题: 文件文件夹中有14000多个文件夹并且文件夹不断增加,是否会增加服务器的处理时间,从而降低搜索的响应时间?为了解决这个问题,是否应该像最初的设计那样实施子文件夹系统


不管怎样,我都需要从文件夹名中获取社会信息。如果我需要将这些申请者分为子文件夹,那么子文件夹名称的最佳方案是什么,因为我不希望依赖于保持不变的名字和姓氏,因为在他们当前的系统中,更新名称会导致旧文件丢失,每个目录的最大文件数取决于所使用的文件系统、文件系统是如何创建的、内核的版本以及可能的其他因素。如果您将ext4与最近的内核一起使用,那么每个目录中有数百万个文件应该不会造成问题。但为了安全和更便于携带,建议拆分庞大的列表

如果您的“唯一ID”不是序列号,而是具有良好分布的随机ID,那么简单的解决方案是:

Files > 0 > cowxuRoGj

这将把您的文件列表分为62个目录,这样您就可以在您有生之年可能遇到的任何文件系统上存储数十万个文件。

它们的旧结构有什么问题?在一个文件夹中有大量的名称是很慢的,像这样对它们进行分组是防止这种情况发生的好方法。用于编程问题,而不是有关使用或配置Unix及其实用程序的问题。或者是更好的地方来回答这样的问题。“Barmar,谢谢你提出的观点,我不认为这是我从未使用过的一种选择。然而,当前结构的唯一真正问题是,使用的是社保号码的最后4个,如果用户名发生更改,旧文件将变成幽灵,与之没有任何关联。我正在寻找更好的解决办法。可能是子文件夹中具有唯一ID的A>B结构?如果用户名发生更改,您会将其所有文件复制到新名称。但最好是设计一个永久的、唯一的用户名系统。无论如何命名用户,都可以使用
A>B
层次结构。您可以使用用户名的前两个字母,而不是名字和姓氏。@Barmar,这是一个合理的想法。所以你认为我上面描述的拥有这么多文件夹的方式会造成速度问题,是吗?
Files > 0 > cowxuRoGj