2011-07-30 42 views
2

共享主機上哪個更好?緩存 - 磁盤或數據庫?

您認爲將數據庫查詢結果緩存到磁盤是個好主意嗎?

+3

將數據庫結果緩存到磁盤是「反高速緩存」。 – Jacob

+0

在輸出的HTML上應用緩存引擎,而不是在數據庫上更好。 –

回答

5

這是一個非常糟糕的主意,除非查詢是超貴(壞的數據庫佈局?)返回一個巨大的結果集。

  • 如果查詢很貴但結果集很小:將它存儲在內存中,例如:在memcached中。
  • 如果查詢很便宜:爲什麼要緩存它呢?但如果你想這樣做,記憶就是要走的路。

數據庫通常會在內存中保存大量內容,因爲與內存訪問相比,磁盤訪問速度非常慢。因此,使用磁盤緩存小事通常不會提高性能。

+1

但廉價的主機不會啓用memcached :( – Emily

+3

你得到你所支付的費用 –

+1

你看到的就是你得到的結果 – Bytemain

2

取決於目的。如果可用,我會將它們存儲在MemCache中。否則,將它們存儲在磁盤上是我認爲的最佳選擇。

但通常根本不需要存儲查詢。通常他們會表現良好。如果你有這麼大而複雜的疑問,你可能更適合切換到專用服務器。但在此之前,您可以通過創建正確的索引並優化您的查詢來調整我們的數據庫。

0

這是我approuch:

我在一個PHP陣列結構緩存「盤」上的數據庫querys。然後強大的PHP操作碼緩存來工作,它讓我從內存的結果,而不是磁盤,因爲他們得到緩存。 http://en.wikipedia.org/wiki/PHP_accelerator

+0

我有這個確切的想法,要麼我沒有瘋狂,要麼都瘋了!做一些基準測試! – ethanpil

0

爲什麼不從結果創建臨時表可能使用存儲過程和觸發器?存儲到磁盤有點不尋常。