2016-09-21 76 views
3

我建立一個網站,用戶將能產品之間的比較規範。用戶可以查看一個單品的規格,我只需要規範針對特定的產品,但他們也將能夠選擇的產品與網站上提供的任何其他產品進行比較。我想我最終會得到75-100種產品。PHP - 會話變量性能(會話VAR vs雷丁文件)

所有的規格都在全球CSV文件中。每種產品都有37個功能,並且有75-100個功能。這個文件的大小約爲50Kb。我也有每個產品包含相同的數據,但只有一個產品的單個文件。

我不知道會是什麼,以確保良好性能的最佳方式:

  1. 負載在$ _SESSION整個文件,以使其所有可用的時間,所有頁面。這意味着所有數據都會一次加載並且可以一直使用,而不會有任何額外的請求,但這會影響性能嗎?

  2. 加載單獨任何需要的時候,他們的文件,但是這意味着,如果有人開始比較產品(這是我們的目標),PHP將有一個數據庫,並訪問它來讀取文件中的所有時間

  3. 存儲數據每次都需要

什麼是最好的選擇?如果您想到其他解決方案,我當然也很感興趣。

感謝

回答

1

既然你要存儲數據,你可能想要把它變成一個數據庫;)

由於數據庫引擎是非常好的,在緩存,你可能不會必須儘快擔心隨時性能,再加上你已經建立了自己的一些頭痛的預防萬一「文件」一下子得到了很多大。

如果數據庫是不夠的表現,你總是可以採取在MySQL -table一個MEMORY或memcached的例如。

+0

謝謝!我也想過用數據庫選項,但我想了解的是,如果它是更好的,一旦整個文件加載到有一些像數據庫10個查詢或有? – Laurent

2

加載CSV到$ _SESSION仍然需要發生的每個請求,這聽起來不是很有效。

MySQL是偉大的寫了一些/讀取一些解決方案,但在我看來,你的情況是更多的是寫很少/讀取時常局面。

使用的內存緩存像下面的選項之一保存CSV的內容可能會使得更多的意義:

+0

斯圖亞特,謝謝!我確實處於一種情況,我會每個月寫3-4次,並多次閱讀(並在同一會話中多次閱讀)。如果他們提供您提出的解決方案,我需要與託管公司聯繫。感謝您的建議! – Laurent