2010-02-01 101 views
0

我有一個系統,用戶可以根據這些選項選擇幾個選項並接收圖像。我試圖將多個生成的圖像(對應於這些選項)組合到請求的圖片中。我試圖優化這個,這樣如果某個選項(即文件存在)存在圖像,那麼就不需要計算它,我們繼續下一步。從一個文件夾(知道前綴)搜索文件與搜索多個文件夾中的文件(知道文件夾名稱)

我應該將這些圖像存儲在不同的文件夾中,其中每個文件夾是選項名稱嗎?我應該將它們存儲在同一個文件夾中,爲每個圖像添加一個對應於該選項的前綴?我應該將文件名存儲在數據庫中並檢查嗎?檢查文件是否存在更快?

我在Linux上使用PHP,但如果更改編程語言或操作系統,答案會有所不同,我也很感興趣。

回答

1

如果您打算製作大量這些圖片,那麼將它們全部保留在一個平面目錄中看起來不具有可擴展性。我會選擇一個層次結構,這會使管理起來更容易。

檢查數據庫總是比檢查文件是否存在更快,所以如果速度是主要問題,請使用分層文件夾結構並將所有文件名保留在數據庫中。

+0

我同意第一段,但不同意第二段。畢竟,文件系統只是一種特殊類型的數據庫 - 甚至有可能,這取決於文件系統 - 檢查文件的存在將比檢查數據庫表中的條目更快。真的,知道肯定的唯一方法就是對它進行基準測試。 – caf 2010-02-01 10:32:04

+0

@caf公平點。還有一個過早優化的危險 - 可能只是在真正需要的地方移動到數據庫,因爲它可能永遠不會(假設它會產生任何影響)。 – Skilldrick 2010-02-01 10:57:01