就在如何處理對網站的多媒體內容的共識摸索一段時間後(使用本地文件系統或數據庫中的BLOB),主要是在這裏:優化的文件系統的目錄結構(通過數據庫中引用)
MySQL Binary Storage using BLOB VS OS File System: large files, large quantities, large problems
我已經決定直接在文件系統上保存並在數據庫中放入路徑引用。我基本上正在開發一個Web應用程序,它將包含大量圖像(主要在5MB
到10MB
之間)和視頻(主要在50MB
到100MB
左右)。
有人可以建議我什麼是最好的方式來組織我的照片和視頻在文件系統上。我學到的流行解決方案是將文件分散到各個子目錄中。
我不清楚,爲什麼我們要從反面開始使用文件的基本名稱?我嘗試了文件名的兩個字符(假設從背面完成)的組合,然後創建目錄的層次結構樹。我無法發現目錄樹寬度或高度的差異。
而且,由於可能會有大量的照片和視頻,我的優先級必須是什麼,優化目錄樹的高度或目錄樹的寬度?
目錄查找速度取決於目錄和大小以及目錄高速緩存。大小(條目數),因爲第一次打開文件時必須掃描目錄。因此,如果您可以限制目錄的數量和執行第一次查找所需的目錄條目的數量,那就是一個勝利。哈希目錄名稱可能適合於此。重複的搜索應找到緩存的目錄信息。節省掃描時間。在某些系統上,如Solaris。這稱爲目錄inode緩存調整調整,涉及系統設置。 –
@jimmcnamara我應該如何爲目錄緩存創建最佳解決方案?因爲所有目錄的累計大小並不在我的控制範圍內 – activatedgeek
同時適用於兩者。簡單示例:具有良好雪崩的散列可以讓您創建100個目錄。良好的雪崩意味着散列碼將文件非常均勻地散佈在各個目錄中。所以。將文件名稱存儲爲十進制數字(或某種字符串)。使用該數字/字符串的前兩個字符作爲目錄名稱。將文件寫入該目錄。在某種程度上,我猜測你的應用程序的實際使用。隨着目錄中條目的數量增加,掃描時間也會增加。我假設你給了一個正確的文件名稱來查找。 –