首頁 > 後端開發 > Python教學 > 大量小文件儲存提高效率要點詳解

大量小文件儲存提高效率要點詳解

高洛峰
發布: 2016-10-18 14:37:03
原創
1448 人瀏覽過

在WEB開發中經常會遇到寫檔案的情況,最常見的莫過於保存圖片檔案。如果是文件數量不多,那我們完全沒有必要擔心其效率問題。但是當你有大量的用戶,大量的圖片的時候,我們怎麼儲存圖片文件,就會直接影響整個圖片儲存系統的效率。

通常,有一種說法是:如1個目錄下有10000個子文件,那麼讀取某個文件的速度將會明顯下降。那這種說法到底正確不正確呢?下面我們來看看:

  問:為什麼單目錄下子文件過多會影響性能?如1個目錄下有10000個子文件,那麼讀取某個文件的速度將會明顯慢下來?這和文件索引有關嗎?索引中如何組織這些節點?

  答:是的,與索引有關。 1w個不算多。上百萬個就看出來了。但建議不要超過10000個。

  問:上百萬個慢是檔案系統整體吧,那麼和當前目錄怎麼關係上呢?一個差不多的檔案系統支援幾百萬個檔案不算什麼

  答:我是說一個目錄下,不分子目錄,直接放他幾十萬上百萬的文件,此時檢索這個目錄索引很費資源。

  支援數量有限是因為目錄這個物件本身容納的大小有被限制,目錄就是一個容納檔案名稱和檔案對應inode號的容器,被限制了,那麼容納的條目也就被限制了。

  讀取某個檔案速度沒影響。但是查找就費勁了。某些檔案系統的索引機制不完善,甚至沒有任何最佳化演算法,致使每次查找耗費更多的時間。


從上面的問答我們可以知道,「如1個目錄下有10000個子文件,那麼讀取某個文件的速度將會明顯下降。」的說法是對的。那如何分目錄呢?


其實也比較簡單,可以按月份分,hash分,時間加hash組合分,至於用哪種方法,那就要看你的專案需求了。 。 。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板