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

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

我有 3 个不同的文件夹,其中包含有关销售订单的特定信息。一切运行正常,但几天前我开始遇到有关每个主文件夹中子目录数量的问题(订单超过 32K)。

我的临时解决方案是将最旧的数据移至备份并将其从生产环境中删除,但我真的希望将其保留在那里,所以我的问题是:

您推荐哪些选项来存储结构,以便我可以保存增量子文件夹而不会达到最大值?我在带有 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 个文件。

答案1

在我看来,你需要一个(真正的)数据库(而不是文件系统),以及一些开发时间来为其创建前端。调查MongoDB或者Postgres


如果您需要更快的解决方案,请尝试按时间分解您的订单:将它们存储在类似的层次结构中[year]/[month]/order_######(您可以根据需要继续使用序列订单号,或者编写订单号,以便YYYYMM#####以后更容易在系统中找到,而不必在目录层次结构中进行搜索)。

只要一个月内的订单数量少于 30,000 左右,这种方法就行得通。filesystem inode limit但是,下一个要达到的限制是,唯一的解决方案是使用新文件系统(或将数据拆分到多个文件系统中)。今天看看df -i你的系统,记住每个文件和目录都会占用一个 inode。最终你会用完。

答案2

您可以升级到 ext4 以绕过 32k 的限制。

相关内容