Linux

保存增量子文件夾的最佳結構是什麼?

  • February 15, 2012

我有 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 個文件。

在我看來,您需要一個(真實的)數據庫(而不是文件系統),以及一些開發時間來為它製作前端。調查MongoDBPostgres


如果您需要更快的解決方案,請嘗試按時間分解您的訂單:將它們儲存在一個層次結構中[year]/[month]/order_######(如果需要,您可以繼續使用序列號,或者組合訂單號,YYYYMM#####以便以後在系統中更容易找到而無需在目錄層次結構中進行搜尋)。

只要一個月的訂單數量少於 30,000 左右,這將起作用。但是,您將遇到的下一個限制是filesystem inode limit,唯一的解決方案是新文件系統(或將數據拆分到多個文件系統)。今天看看df -i你的系統,記住每個文件和目錄都會多吃一個 inode。最終你會用完。

引用自:https://serverfault.com/questions/360411