2010-09-17 47 views
1

我想添加一些靜態信息與字符串鍵到我的所有頁面。各個PHP頁面使用由查詢字符串過濾的某些信息。哪種方法可以更好地添加此信息?生成一個100K(或更大,如果以後需要更多信息)PHP文件與關聯數組或添加其他數據庫表與此信息和查詢?哪個更好?額外的數據庫調用或生成的PHP文件?

第一種解決方案是每次加載100K文件,即使我只使用當前頁面上的部分信息。另一方面增加了額外的數據庫調用來渲染每一頁。

如果頁面數量很多,那麼成本更低?加載一個PHP文件或進行額外的數據庫調用?

+0

其容易找出,做一個研究:)測量時間頁面生成與數據庫和文件...我會去與DB壽 – 2010-09-17 11:27:39

回答

2

除非顯示它確實是一個瓶頸(包括php文件或查詢數據庫),否則應該選擇最適合維護的選項。

我的猜測是這是第二種選擇。將其存儲在數據庫中。

0

將它存儲在數據庫中是一個更好的計劃。通過數據庫,您可以提供更好的數據約束,更輕鬆地與其他數據交叉引用並建立強有力的關係。目前你可能需要也可能不需要,但最終它是一個更加靈活的解決方案。

什麼是數據用於?我想知道,如果您需要的數據可以存儲在會話變量/ cookie中,一旦它從數據庫中提取出來,這將允許您在每個頁面的呈現中不查詢數據庫。

0

如果您要利用PHP文件,那麼使用APC或其他操作碼緩存將緩解性能問題,因爲每次文件更改時只會加載PHP文件。

但是,正如其他人所指出的,數據庫是最好的地方來存儲這些東西,因爲它更容易維護(這應該是您的首要任務)。

確保易於維護和工作的應用程序,如果您需要性能提升,那麼通常可以接受的做法是將此靜態數據緩存到內存中的鍵/值存儲區,如memcached。這將使您快速訪問您的靜態值(對於大多數請求)。

-2

我不會將此信息稱爲「靜態」。
對我來說,這只是一個常規調用,以從數據庫中獲取圓頂信息,以及其他調用整個頁面的調用。我錯過了什麼?

我同意丹尼斯的觀點,所有的優化都應該基於真實的需求和性能分析。否則它的效果可能會相反。

如果你想利用一些緩存,考慮爲整個頁面實施Conditional GET。

相關問題