如果有很多檢查,哪個更有效?我應該直接檢查'如果文件存在'或檢查數據庫列嗎?
bool exists=File.Exists(file);
或
bool exists= check db list of existing files;
如果有很多檢查,哪個更有效?我應該直接檢查'如果文件存在'或檢查數據庫列嗎?
bool exists=File.Exists(file);
或
bool exists= check db list of existing files;
這取決於。
如果你想檢查文件的存在,你別無選擇,只能檢查文件系統。是的,這可能比數據庫調用慢。儘管如此,Db調用仍然是遠程進程間調用,因此它們本身的權限可能很昂貴。
答案是嘗試這兩個,配置文件,並針對您的特定場景的最佳答案進行優化。
過程中第二個的,由於系統調用這樣一個是昂貴的。最好使用集體目錄列表功能,並檢查內存中的文件是否存在,而無需關注文件系統。
他沒有說這是在內存中。他說這是一個數據庫調用。由於這是一個遠程調用,它可能不會快得多。我建議他嘗試兩種方式,描述/衡量表現,並且看看哪個更快。 – 2009-11-13 10:25:30
從算法複雜度來看。檢查每個文件是O(n)時,立即檢查所有文件是恆定時間操作或O(1)。那麼在這兩種情況下都需要內存中的O(n)。 – doc 2009-11-23 21:09:09
如果你在數據庫中寫入文件的路徑,它比File.Exists請求文件快得多,這取決於文件的數量。如果你只要求一個,它就不會有太大的區別。但是如果你檢查更多的文件,數據庫請求會更快,我想你會通過數據庫獲得文件的路徑,對吧?
這不是很清楚。檢查什麼,使用語言? – 2009-11-13 06:02:51
對於我來說,看起來像C#,基於'File.Exists()'的語法和外殼。 Java會是小寫的。 – 2009-11-13 10:23:45
c#檢查圖像 – zsharp 2009-11-13 17:00:03