Linux
保存增量子文件夾的最佳結構是什麼?
我有 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 個文件。
在我看來,您需要一個(真實的)數據庫(而不是文件系統),以及一些開發時間來為它製作前端。調查MongoDB或Postgres。
如果您需要更快的解決方案,請嘗試按時間分解您的訂單:將它們儲存在一個層次結構中
[year]/[month]/order_######
(如果需要,您可以繼續使用序列號,或者組合訂單號,YYYYMM#####
以便以後在系統中更容易找到而無需在目錄層次結構中進行搜尋)。只要一個月的訂單數量少於 30,000 左右,這將起作用。但是,您將遇到的下一個限制是
filesystem inode limit
,唯一的解決方案是新文件系統(或將數據拆分到多個文件系統)。今天看看df -i
你的系統,記住每個文件和目錄都會多吃一個 inode。最終你會用完。