Ubuntu
用於高效搜尋和檢索文件的目錄與文件
我正在一個網站上工作,使用者可以在伺服器上儲存各種媒體,並且可以有任意數量的使用者。
我想我會像這樣儲存使用者上傳的所有媒體:
MediaRootDIR/UserRootDIR/file.xyz(UserRootDIR 對每個使用者都是唯一的)
還有另一種儲存方式:
MediaRootDIR/file.xyz
我不擔心組織,因為無論如何我都有儲存在數據庫中的文件的路徑。
我的問題:
哪種方法更快?(搜尋、檢索和寫入文件系統 - 目前使用 EXT4 文件系統)。
使用子目錄是否會加快檢索速度,因為 less 沒有。需要在目錄樹中的每一級載入文件?
是否建議使用子目錄,因為我聽說一個文件夾在 EXT4 中可以擁有的子文件夾數量有限制,大約為 64,000
有沒有更好的選擇來儲存這樣的媒體?
提前致謝
**編輯:**名稱衝突對我來說不是問題,因為上傳的每個文件都有唯一的名稱
EXT4(甚至是最近的帶有
dirindex
掛載選項的 EXT3)和 XFS 在每個目錄中儲存數百萬個文件都沒有問題。但是,我強烈建議您使用第一種方法(使用UserRootDir
中間目錄),因為它更易於管理。例如,考慮ls
在包含 100 萬個文件和 10.000 個文件的目錄內發出一個簡單的文件:前者將檢索到比後者多 100 倍的數據。