2016-02-28 22 views
-1

從@Andrew Regan得到答案後,我編輯了我的問題及其解釋。哪些緩存將更快,數據作爲文件夾和子文件夾中的文件還是數據作爲數據庫內容?

我想將html數據提供給數百萬人。我開始知道 - 它是通過緩存完成的。

我知道HTML爲文件,現在我也讀了HTML頁面存儲在數據庫中來服務。

因此,我的問題是,它下面的緩存會更快0​​ - 數據庫中的HTML數據的緩存 - 在不同的文件夾和子文件夾

的HTML文件緩存。

即使這個實驗只對單個文件/表記錄完成,哪種方法會更快? (毫無疑問,單個文件或記錄的結果將在納秒內完成,然而,哪一個緩存將發生得更快?例如,其中一個程序需要0.000000001秒,另一個程序需要0.000000002秒。

回答

0

您還沒有告訴我們介紹一下您的應用程序的架構,或者您預期的流量東西,或者你是否已經考慮現有框架解決您的問題。因此,這將是一個非常高的水平視圖。

答案是緩存

對於靜態內容,您不應該使用來暴露最終用途 r表示文件系統或數據庫的性能。反正你不應該想要。

如果您只是在單個服務器上提供固定的,不變的靜態內容,則最有效的選擇是在啓動時將整批文件簡單地讀入緩存(理想情況下保存在RAM中,而不是磁盤中)並繼續從那裏沒有任何額外的負載或提取。 (更好的是,你會使用proven cache outside of your network。)

對於最終用戶來說應該是非常快。就機器性能而言,無論從文件系統還是從數據庫,儘管磁盤可能更容易處理,但它應該不會影響緩存的種子種子

如果您願意,或者您有更改內容,可以將數據懶惰地加載到緩存中。如果您從磁盤或數據庫加載它,但提供足夠的積極緩存,它仍然無關緊要。儘量設置TTL(使用期限),以避免不必要的重新加載。

+0

謝謝你的回答。在你回答之後,我編輯了我的問題來解釋我確切的問題。再一次感謝你。 –

+0

您還沒有給出足夠的關於您的環境,文件系統,數據庫,您的使用情況或您的特定需求的詳細信息,以便給出明智的答案。變數太多。最佳做法不是爲任何*物理硬件提供內容(特別是靜態內容)。 –

+0

在開發人員的泛濫中,你是迴應這個問題的人。感謝那。現在我可以通過環境知道你究竟是什麼意思了......?我應該這樣做,你問(環境= Windows/Linux的),(文件系統= ntfs/EXT4),(DB = mysql/sql/oracle)?所以這再次闡明我的問題。 –

相關問題