2012-03-29 20 views
0

可以說,我有上百萬分隔成子文件夾的文件夾中的文件,其中大部分是與〜250KB + ..爲了更快地到達文件,我應該搜索所有子文件夾還是將它們放在一個文件夾中而不是搜索?

的照片時,我想與他們接觸它tooks真的太多的時間來獲取文件,因爲我需要搜索通過所有子文件夾。

文件夾樹是這個樣子:

 |D 
    |B | 
    | |E 
A | 
    | |F 
    |C | 
     |G 

只是爲了使其更容易理解可以說

A  : is my area. 
B,C  : are my buildings on that area. 
D,E,F,G : are my flats of the buildings. 

,所有這些單位可以改變建築物之間以及與其他單位

 |G    |F    |E 
    |B |    |B |    |B | 
    | |D    | |G    | |F 
A |   OR A |   OR A |  
    | |E    | |D    | |G 
    |C |    |C |    |C | 
     |F    |E    |D 
位置

所以要找出那個單位在哪裏,我將需要通過所有的建築物槽那個地區..

在這樣的位置。 如果我等待排序所有文件在一起的一個文件夾.. 它會比搜索多個子文件夾快嗎?

編輯:我現在真的不是很多關於文件系統,但即時通訊使用win7和我的磁盤文件系統顯示爲NTFS也有NTFS文件系統的網絡磁盤。

+1

我不知道你在那裏有什麼樣的建築物,讓公寓能夠在建築物之間移動!我的公寓大部分都保持住了......除了那段時間,當它沮喪並搬到地下室幾個月。我談到它回到二樓。它相信我。畢竟我住在裏面。 – Celada 2012-03-29 14:23:52

+0

@Celada大聲笑很好的一個。我知道這看起來很複雜,這就是爲什麼我試圖用建築物和公寓解釋。我可以看到其他文件夾之間移動的文件夾。如果我們將這些文件夾視爲物品,並且如果您有時需要從桌子上拿取物品放在牀上,那麼您將無法在該桌子上找到該物品,因此您可以開始搜索其他位置的物品。 – 2012-03-29 14:34:21

回答

1

如果您知道要打開的文件,發現它時,它被嵌套在一系列的子目錄的路徑通常比在一個巨大的目錄中找到一個文件快。當然,這一切都取決於你的文件系統,所以測試不會有什麼影響。

說明:如果您必須搜索批次中不同地方的文件,實際上這可能會變慢。如果你有這麼多的文件,最快的解決方案是讓你的文件系統更容易:將每個文件的位置存儲在一個數據庫中,該數據庫將每個文件(唯一命名的)「flat」映射到完整的路徑名。通過這種方式,您可以使用單個調用open來訪問每個文件,並且由於中間子目錄保持較小(ish),文件系統將很快找到它。

+0

是!多數民衆贊成我認爲要麼並接受你的答案,因爲你的第一個人回答。 – 2012-03-29 14:25:26

+0

謝謝。我已經進一步澄清了一些反思。最大的加速將來自少使用文件系統。 – alexis 2012-03-29 14:37:43

1

不同的文件系統性能不同。你在使用哪一個?

歷史上,文件系統有很多的麻煩,包含大量的文件(比如說,數以萬計的文件或更多),因爲他們使用爲O(n)算法到一個目錄中搜索目錄。大多數現代文件系統如ext3,ext4和xfs都沒有這個問題。

要找出哪種結構對您更好,您需要自己對不同情況進行基準測試(確保注意內核的目錄名稱查找緩存是熱還是冷)或研究其他人已經完成的基準測試在你的特定文件系統上。

+0

感謝您的支持+1。 – 2012-03-29 14:25:16