2013-02-04 44 views
-1

我有一個共享服務,並且我在Windows 2008服務器上的一個NTFS目錄上有超過100,000個文件。將大量文件保存在NTFS上的一個目錄中

問題是,關於性能,將所有文件添加到mysql blob會更好嗎?

+0

的MD5哈希這確實取決於如何使用這些文件的

  • 第一個X字符 - - 他們是否經常被寫/讀?由不同的用戶? – armani

  • +5

    沒有。數據庫中的文件通常是一個愚蠢的/壞主意。有很少的用例要求這樣做。如果訪問時間成爲問題(例如,SINGLE目錄中的所有100k文件),則可以嘗試將負載分散到多個子目錄中,例如,基於文件名的第一個字符。但與所有情況一樣,您必須對每個解決方案進行基準測試,並確定哪一個「最便宜」。 –

    +0

    文件的大小也可能產生巨大的影響。您可能不希望將大文件存儲在數據庫中。 – ESG

    回答

    1

    在文件系統vs數據庫中存儲文件詳細討論here。存儲很多文件在一個目錄中肯定是一個壞主意。您可能會遇到性能問題。

    更好的辦法是在該目錄下創建子目錄。他們可以通過組織:

    • 年/月的文件名的
    • 第一個X字符的文件名
    +0

    你知道任何創建直接文件和移動文件的解決方案嗎? 我可以爲新文件功能做到這一點,但也許有一個現成的源代碼... – Aminadav

    +0

    你可以寫一個vbscript/jscript或powershell腳本。 –

    +0

    我假設你在PHP中有一些* getPath(filename)*函數,你應該編寫一個小的PHP-CLI腳本來調用它,例如* getpath.php myfile *回顯路徑。所以你可以使用* mkdir -p'getpath filename' *創建* mv文件名'getpath filename'/filename *來完成剩下的工作。 – ern0

    相關問題