什么是保存增量子文件夹的最佳结构?

我有3个不同的文件夹包含销售订单的特定信息。 一切工作正常,但几天前,我开始有一个关于每个主要文件夹(高于32K订单)子目录的数量的问题。

我的临时解决scheme是将最旧的数据移动到备份并将其从生产环境中移除,但是我真的很想将其放在那里,所以我的问题是:

你build议什么选项来存储一个结构,我可以保存增量子文件夹,而不会达到最大值? 我在一台带有ext3的Ubuntu服务器上

它看起来像

-tmp /
–order_1 /
–order_2 /

–order_32000 /

-imgs /
–order_1 /
–order_2 /

–order_32000 /

-hd_imgs /
–order_1 /
–order_2 /

–order_32000 /

每个order_xx文件夹里面都会生存1到30个左右的文件。

这听起来像你需要一个(真正的)数据库(而不是文件系统),还有一些开发时间来做一个前端。 调查MongoDB或Postgres 。


如果您需要更快的解决scheme,请尝试按时拆分订单:将其存储在[year]/[month]/order_######等层次结构中(如果需要,可以继续使用序列号)订单号码为YYYYMM#####因此稍后在系统中更容易查找,而无需在目录层次结构中进行search)。

只要一个月的订单数量less于3万个左右, 下一个限制是filesystem inode limit ,唯一的解决scheme是有一个新的文件系统(或者将数据分割成多个文件系统)。 现在看看你的系统上的df -i ,记住每个文件和目录都会咀嚼更多的inode。 最终你会用完。

你可以升级到ext4来解决32k的限制。