Ubuntu

用於高效搜尋和檢索文件的目錄與文件

  • November 13, 2015

我正在一個網站上工作,使用者可以在伺服器上儲存各種媒體,並且可以有任意數量的使用者。

我想我會像這樣儲存使用者上傳的所有媒體:

MediaRootDIR/UserRootDIR/file.xyz(UserRootDIR 對每個使用者都是唯一的)

還有另一種儲存方式:

MediaRootDIR/file.xyz

我不擔心組織,因為無論如何我都有儲存在數據庫中的文件的路徑。

我的問題:

哪種方法更快?(搜尋、檢索和寫入文件系統 - 目前使用 EXT4 文件系統)。

使用子目錄是否會加快檢索速度,因為 less 沒有。需要在目錄樹中的每一級載入文件?

是否建議使用子目錄,因為我聽說一個文件夾在 EXT4 中可以擁有的子文件夾數量有限制,大約為 64,000

有沒有更好的選擇來儲存這樣的媒體?

提前致謝

**編輯:**名稱衝突對我來說不是問題,因為上傳的每個文件都有唯一的名稱

EXT4(甚至是最近的帶有dirindex掛載選項的 EXT3)和 XFS 在每個目錄中儲存數百萬個文件都沒有問題。但是,我強烈建議您使用第一種方法(使用UserRootDir中間目錄),因為它更易於管理。例如,考慮ls在包含 100 萬個文件和 10.000 個文件的目錄內發出一個簡單的文件:前者將檢索到比後者多 100 倍的數據。

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