2012-12-17 53 views
1

這是更多的算法問題,但我想弄清楚什麼是最有效的圖片大型數據庫。將大量文件全部存放在一個目錄下(比如:images/userid_pic_profile.png)還是多個目錄下存放少量文件(例如:userid/profile.png userid/avatar.png)會更有意義?多目錄或單數據存儲和訪問

+0

重複http://stackoverflow.com/questions/9821947/directory-structure-for-large-number-of-files? –

+1

這種,但還是沒有回答效率問題。這幾乎只是建議(正如我標記爲答案的那樣,因爲我從經驗中認同)。 – user1470511

+0

更高效的是什麼?你一次訪問一個圖片嗎?你想分析它們的大部分子集嗎?訪問中是否有可能訂購?文件是否隨時間而改變? –

回答

0

僅出於組織原因,您應該使用多個目錄。在一個目錄中有很多文件的一些操作系統在列出和搜索文件(我正在談論單個目錄中的成千上萬個文件)時會導致真正的減速。

+0

有沒有任何算法或數學來支持?我打算基於直覺做到這一點,但我很想看看這是否以某種方式得到證實。 – user1470511

+1

@ user1470511 - 緩慢?經驗;) – Oded

+0

高度依賴於特定文件系統如何實現其目錄結構。有些使用未排序的線性文件名列表。有些使用排序的線性文件名列表。一些更進一步,並使用B型樹(或類似的),由文件名鍵入。在第一種情況下,文件數量的平均訪問是O(N),在第二和第三種情況下,O(log N)應該是可以實現的,在B-樹情況下可能有更好的常量。 – Vatine