2013-06-25 41 views
1

假設我們有一個PHP數組,其中包含約200個包含站點數據的密鑰,全局共享給所有用戶。使用apc_cache和存儲到文件之間的區別?

該陣列從一個SQL數據庫,其花費的時間太長構成。我們想要存儲這個數組。

什麼是存儲陣列apc_store()或序列化,並保存到一個文件.php磁盤上,然後要麼apc_fetch()file_get_contents()和反序列化檢索之間的差異(主要是在速度)?

這將是更快?爲什麼不使用該文件?爲什麼要使用緩存?

編輯一個原因使用一個文件,而不是一個緩存(對我來說)是,我可以從CLI /殼/根與科雷訪問文件。

回答

3

從最好到最差:

  • APC是內存和速度非常快;它會自動爲您序列化和反序列化。
  • memcached是在內存中也一樣,並且比APC慢一點。這不僅僅是因爲它允許跨服務器使用相同的緩存。
  • unserialize(file_get_contents())涉及擊中盤,但比PHP的解析速度。如果您沒有APC,memcached或者等效的內存中緩存,這是一個好的選擇。
  • var_export()創建一個php文件,然後include比反序列化一個字符串要慢,因爲需要解析文件 - 除了打磁盤。好的一面在於,如果您需要,它可以輕鬆編輯陣列。
  • serialize()成一個PHP文件中保存的變量提供了最糟糕的每個:磁盤命中,PHP的解析和反序列化的數據。

(也可能有一些東西約在數據庫中有正確的索引可以說在擷取200行建立一個數組應該不急不慢。)

相關問題